MSSQL网站制作之挪动数据库
InnoDB数据表的索引,与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。在SQLServer中可使用拆分(Detach)和附加(Attach)的办法来挪动数据库。拆分数据库是从服务器中移往逻辑数据库,但不会将操纵体系中的数据库文件删除。附加数据库将会创立一个新的数据库,并复制存储在已有的数据库文件和事件日记文件中的数据。利用体系存储历程Sp_detach_db来拆分数据库,用体系存储历程Sp_attach_db来附加数据库。Sp_detach_db体系存储历程的语法以下:
sp_detach_db[@dbname=]database_name
[,[@skipchecks=]skipchecks]
个中[@skipchecks=]skipchecks子句中Skipchecks的值为True或False。当Skipchecks的值为True时,指定在实行此历程之前不必要对数据库中的一切表实行UPDATESTATISTICS命令;为False时,则必要实行UPDATESTATISTICS命令。
Sp_attach_db体系存储历程的语法以下:
sp_attach_db[@dbname=]dbname,
[@filename1=]filename_n[,...16]
个中“filename_n”包含文件的路径和物理称号。最多可指定16个文件。文件中必需包括主数据库文件。假如必要附加的文件凌驾了16个,就必需利用带FORATTACH子句的CREATEDATABASE命令来取代。
注重:Sp_attach_db体系存储过程当中只能感化于那些已用Sp_detach_db体系存储历程从服务器中拆分出来的数据库。
例6-16:挪动数据库mytest到E:SQLData目次下。
(1)在SQLServerQueryAnalyzer中运转体系存储历程Sp_helpdb,失掉mytest数据库所包括的文件称号、数目、范例、寄存地位等信息。命令语句以下:
execsp_helpdbmytest
(2)在SQLServerQueryAnalyzer中运转Sp_detach_db体系存储历程,拆分mytest数据库。命令语句以下:
execsp_detach_dbmytest,true运转了局以下:
Successfullydetacheddatabasemytest1.
DBCCexecutioncompleted.IfDBCCprintederrormessages,contactyoursystemadministrator.
(3)在操纵体系的文件夹窗口顶用剪切或粘贴的体例间接将与数据库相干的操纵体系文件挪动到E:SQLData2000Server目次下。行将D:SQLDatamytest_Data.MDF文件和D:SQLDatamytest_Log.LDF文件移到E:SQLData2000
(4)在SQLServerQueryAnalyzer中运转Sp_attach_db体系存储历程,附加文件到mytest数据库。命令语句以下:
execsp_attach_db@dbname=mytest,
@filename1=e:sqldatamytest_data.mdf,
@filename2=e:sqldatamytest_log.ldf
运转了局以下:
Successfullyattacheddatabasemytest.
至此已完成了数据库的挪动事情,可在EnterpriseManager中检察mytest数据库的信息,也能够在SQLServerQueryAnalyzer中运转体系存储历程Sp_helpdb来检察挪动是不是乐成。
线上或者测试环境经常出现的误操作总是让DBA同学那么闹心。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片? 对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。 多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
页:
[1]