1、检查数据库完整性
dbcc checkdb(Portal)
Portal的 DBCC 结果。 Service Broker 消息 9675,状态 1: 已分析的消息类型: 14。 Service Broker 消息 9676,状态 1: 已分析的服务约定: 6。 Service Broker 消息 9667,状态 1: 已分析的服务: 3。 Service Broker 消息 9668,状态 1: 已分析的服务队列: 3。 Service Broker 消息 9669,状态 1: 已分析的会话端点: 0。 Service Broker 消息 9674,状态 1: 已分析的会话组: 0。 Service Broker 消息 9670,状态 1: 已分析的远程服务绑定: 0。 Service Broker 消息 9605,状态 1: 已分析的会话优先级: 0。 sys.sysrscols的 DBCC 结果。 对象 'sys.sysrscols' 的 14 页中有 1286 行。 sys.sysrowsets的 DBCC 结果。 对象 'sys.sysrowsets' 的 2 页中有 206 行。 sys.sysclones的 DBCC 结果。 对象 'sys.sysclones' 的 0 页中有 0 行。 sys.sysallocunits的 DBCC 结果。 对象 'sys.sysallocunits' 的 3 页中有 228 行。 sys.sysfiles1的 DBCC 结果。 对象 'sys.sysfiles1' 的 1 页中有 2 行。 sys.sysseobjvalues的 DBCC 结果。 对象 'sys.sysseobjvalues' 的 0 页中有 0 行。 sys.syspriorities的 DBCC 结果。 对象 'sys.syspriorities' 的 0 页中有 0 行。 sys.sysdbfrag的 DBCC 结果。 对象 'sys.sysdbfrag' 的 0 页中有 0 行。 sys.sysfgfrag的 DBCC 结果。 对象 'sys.sysfgfrag' 的 1 页中有 0 行。 sys.sysdbfiles的 DBCC 结果。 对象 'sys.sysdbfiles' 的 1 页中有 2 行。 sys.syspru的 DBCC 结果。 对象 'sys.syspru' 的 0 页中有 0 行。 sys.sysbrickfiles的 DBCC 结果。 对象 'sys.sysbrickfiles' 的 0 页中有 0 行。 sys.sysphfg的 DBCC 结果。 对象 'sys.sysphfg' 的 1 页中有 1 行。 sys.sysprufiles的 DBCC 结果。 对象 'sys.sysprufiles' 的 1 页中有 2 行。 sys.sysftinds的 DBCC 结果。 对象 'sys.sysftinds' 的 0 页中有 0 行。 sys.sysowners的 DBCC 结果。 对象 'sys.sysowners' 的 1 页中有 14 行。 sys.sysdbreg的 DBCC 结果。 对象 'sys.sysdbreg' 的 0 页中有 0 行。 sys.sysprivs的 DBCC 结果。 对象 'sys.sysprivs' 的 1 页中有 170 行。 sys.sysschobjs的 DBCC 结果。 对象 'sys.sysschobjs' 的 33 页中有 2296 行。 sys.syscolpars的 DBCC 结果。 对象 'sys.syscolpars' 的 17 页中有 1047 行。 sys.sysxlgns的 DBCC 结果。 对象 'sys.sysxlgns' 的 0 页中有 0 行。 sys.sysxsrvs的 DBCC 结果。 对象 'sys.sysxsrvs' 的 0 页中有 0 行。 sys.sysnsobjs的 DBCC 结果。 对象 'sys.sysnsobjs' 的 1 页中有 1 行。 sys.sysusermsgs的 DBCC 结果。 对象 'sys.sysusermsgs' 的 0 页中有 0 行。 sys.syscerts的 DBCC 结果。 对象 'sys.syscerts' 的 0 页中有 0 行。 sys.sysrmtlgns的 DBCC 结果。 对象 'sys.sysrmtlgns' 的 0 页中有 0 行。 sys.syslnklgns的 DBCC 结果。 对象 'sys.syslnklgns' 的 0 页中有 0 行。 sys.sysxprops的 DBCC 结果。 对象 'sys.sysxprops' 的 1 页中有 29 行。 sys.sysscalartypes的 DBCC 结果。 对象 'sys.sysscalartypes' 的 1 页中有 34 行。 sys.systypedsubobjs的 DBCC 结果。 对象 'sys.systypedsubobjs' 的 0 页中有 0 行。 sys.sysidxstats的 DBCC 结果。 对象 'sys.sysidxstats' 的 7 页中有 382 行。 sys.sysiscols的 DBCC 结果。 对象 'sys.sysiscols' 的 4 页中有 565 行。 sys.sysendpts的 DBCC 结果。 对象 'sys.sysendpts' 的 0 页中有 0 行。 sys.syswebmethods的 DBCC 结果。 对象 'sys.syswebmethods' 的 0 页中有 0 行。 sys.sysbinobjs的 DBCC 结果。 对象 'sys.sysbinobjs' 的 1 页中有 23 行。 sys.sysaudacts的 DBCC 结果。 对象 'sys.sysaudacts' 的 0 页中有 0 行。 sys.sysobjvalues的 DBCC 结果。 对象 'sys.sysobjvalues' 的 96 页中有 391 行。 sys.syscscolsegments的 DBCC 结果。 对象 'sys.syscscolsegments' 的 0 页中有 0 行。 sys.syscsdictionaries的 DBCC 结果。 对象 'sys.syscsdictionaries' 的 0 页中有 0 行。 sys.sysclsobjs的 DBCC 结果。 对象 'sys.sysclsobjs' 的 1 页中有 16 行。 sys.sysrowsetrefs的 DBCC 结果。 对象 'sys.sysrowsetrefs' 的 0 页中有 0 行。 sys.sysremsvcbinds的 DBCC 结果。 对象 'sys.sysremsvcbinds' 的 0 页中有 0 行。 sys.sysxmitqueue的 DBCC 结果。 对象 'sys.sysxmitqueue' 的 0 页中有 0 行。 sys.sysrts的 DBCC 结果。 对象 'sys.sysrts' 的 1 页中有 1 行。 sys.sysconvgroup的 DBCC 结果。 对象 'sys.sysconvgroup' 的 0 页中有 0 行。 sys.sysdesend的 DBCC 结果。 对象 'sys.sysdesend' 的 0 页中有 0 行。 sys.sysdercv的 DBCC 结果。 对象 'sys.sysdercv' 的 0 页中有 0 行。 sys.syssingleobjrefs的 DBCC 结果。 对象 'sys.syssingleobjrefs' 的 1 页中有 215 行。 sys.sysmultiobjrefs的 DBCC 结果。 对象 'sys.sysmultiobjrefs' 的 1 页中有 138 行。 sys.sysguidrefs的 DBCC 结果。 对象 'sys.sysguidrefs' 的 0 页中有 0 行。 sys.sysfoqueues的 DBCC 结果。 对象 'sys.sysfoqueues' 的 0 页中有 0 行。 sys.syschildinsts的 DBCC 结果。 对象 'sys.syschildinsts' 的 0 页中有 0 行。 sys.syscompfragments的 DBCC 结果。 对象 'sys.syscompfragments' 的 0 页中有 0 行。 sys.sysftsemanticsdb的 DBCC 结果。 对象 'sys.sysftsemanticsdb' 的 0 页中有 0 行。 sys.sysftstops的 DBCC 结果。 对象 'sys.sysftstops' 的 0 页中有 0 行。 sys.sysftproperties的 DBCC 结果。 对象 'sys.sysftproperties' 的 0 页中有 0 行。 sys.sysxmitbody的 DBCC 结果。 对象 'sys.sysxmitbody' 的 0 页中有 0 行。 sys.sysfos的 DBCC 结果。 对象 'sys.sysfos' 的 0 页中有 0 行。 sys.sysqnames的 DBCC 结果。 对象 'sys.sysqnames' 的 1 页中有 99 行。 sys.sysxmlcomponent的 DBCC 结果。 对象 'sys.sysxmlcomponent' 的 1 页中有 100 行。 sys.sysxmlfacet的 DBCC 结果。 对象 'sys.sysxmlfacet' 的 1 页中有 112 行。 sys.sysxmlplacement的 DBCC 结果。 对象 'sys.sysxmlplacement' 的 1 页中有 19 行。 sys.sysobjkeycrypts的 DBCC 结果。 对象 'sys.sysobjkeycrypts' 的 0 页中有 0 行。 sys.sysasymkeys的 DBCC 结果。 对象 'sys.sysasymkeys' 的 0 页中有 0 行。 sys.syssqlguides的 DBCC 结果。 对象 'sys.syssqlguides' 的 0 页中有 0 行。 sys.sysbinsubobjs的 DBCC 结果。 对象 'sys.sysbinsubobjs' 的 1 页中有 3 行。 sys.syssoftobjrefs的 DBCC 结果。 对象 'sys.syssoftobjrefs' 的 1 页中有 9 行。 MH_DBLJ的 DBCC 结果。 对象 'MH_DBLJ' 的 1 页中有 15 行。 MH_DLLS的 DBCC 结果。 对象 'MH_DLLS' 的 509 页中有 36399 行。 MH_DLRZ的 DBCC 结果。 对象 'MH_DLRZ' 的 8 页中有 127 行。 MH_FGCD的 DBCC 结果。 对象 'MH_FGCD' 的 1 页中有 141 行。 MH_GJT的 DBCC 结果。 对象 'MH_GJT' 的 0 页中有 0 行。 MH_GJT_JS的 DBCC 结果。 对象 'MH_GJT_JS' 的 9 页中有 110 行。 MH_IDENTITY的 DBCC 结果。 对象 'MH_IDENTITY' 的 1 页中有 12 行。 MH_JSCD的 DBCC 结果。 对象 'MH_JSCD' 的 27 页中有 3191 行。 MH_JSFG的 DBCC 结果。 对象 'MH_JSFG' 的 1 页中有 12 行。 MH_KJFS的 DBCC 结果。 对象 'MH_KJFS' 的 1 页中有 3 行。 MH_KJFS_JS的 DBCC 结果。 对象 'MH_KJFS_JS' 的 8 页中有 104 行。 MH_LBWJ的 DBCC 结果。 对象 'MH_LBWJ' 的 4 页中有 48 行。 MH_MKCS的 DBCC 结果。 对象 'MH_MKCS' 的 4 页中有 297 行。 MH_MKLB的 DBCC 结果。 对象 'MH_MKLB' 的 1 页中有 48 行。 MH_RZXX的 DBCC 结果。 对象 'MH_RZXX' 的 4 页中有 135 行。 MH_XTCS的 DBCC 结果。 对象 'MH_XTCS' 的 2 页中有 11 行。 MH_XTJS的 DBCC 结果。 对象 'MH_XTJS' 的 5 页中有 66 行。 MH_XTMK的 DBCC 结果。 对象 'MH_XTMK' 的 26 页中有 1618 行。 MH_XTYH的 DBCC 结果。 对象 'MH_XTYH' 的 8 页中有 406 行。 MH_XXDY的 DBCC 结果。 对象 'MH_XXDY' 的 0 页中有 0 行。 MH_XXZL的 DBCC 结果。 对象 'MH_XXZL' 的 0 页中有 0 行。 MH_YHCD的 DBCC 结果。 对象 'MH_YHCD' 的 1 页中有 1 行。 MH_YHJS的 DBCC 结果。 对象 'MH_YHJS' 的 6 页中有 574 行。 MH_YXRZ的 DBCC 结果。 对象 'MH_YXRZ' 的 13049 页中有 250639 行。 MH_ZDHC的 DBCC 结果。 对象 'MH_ZDHC' 的 1 页中有 70 行。 MH_ZMBJ的 DBCC 结果。 对象 'MH_ZMBJ' 的 5 页中有 326 行。 MH_ZYDX的 DBCC 结果。 对象 'MH_ZYDX' 的 1 页中有 143 行。 MH_ZYXX的 DBCC 结果。 对象 'MH_ZYXX' 的 1 页中有 12 行。 ZZ_FINGER的 DBCC 结果。 对象 'ZZ_FINGER' 的 0 页中有 0 行。 GY_FBRZ的 DBCC 结果。 对象 'GY_FBRZ' 的 0 页中有 0 行。 MH_DYFF的 DBCC 结果。 对象 'MH_DYFF' 的 0 页中有 0 行。 MH_DYLB的 DBCC 结果。 对象 'MH_DYLB' 的 1 页中有 11 行。 MH_DYMX的 DBCC 结果。 对象 'MH_DYMX' 的 0 页中有 0 行。 MH_FBLB的 DBCC 结果。 对象 'MH_FBLB' 的 1 页中有 11 行。 BSOFT_TEST_CONNECT的 DBCC 结果。 对象 'BSOFT_TEST_CONNECT' 的 1 页中有 1 行。 pbcattbl的 DBCC 结果。 对象 'pbcattbl' 的 0 页中有 0 行。 pbcatcol的 DBCC 结果。 对象 'pbcatcol' 的 0 页中有 0 行。 pbcatfmt的 DBCC 结果。 对象 'pbcatfmt' 的 1 页中有 20 行。 pbcatvld的 DBCC 结果。 对象 'pbcatvld' 的 0 页中有 0 行。 pbcatedt的 DBCC 结果。 对象 'pbcatedt' 的 1 页中有 21 行。 TMP_IMAGE_KEY1的 DBCC 结果。 对象 'TMP_IMAGE_KEY1' 的 1 页中有 13 行。 sysdiagrams的 DBCC 结果。 对象 'sysdiagrams' 的 0 页中有 0 行。 sys.filestream_tombstone_1893581784的 DBCC 结果。 对象 'sys.filestream_tombstone_1893581784' 的 0 页中有 0 行。 sys.syscommittab的 DBCC 结果。 对象 'sys.syscommittab' 的 0 页中有 0 行。 sys.filetable_updates_1925581898的 DBCC 结果。 对象 'sys.filetable_updates_1925581898' 的 0 页中有 0 行。 sys.queue_messages_1977058079的 DBCC 结果。 对象 'sys.queue_messages_1977058079' 的 0 页中有 0 行。 sys.queue_messages_2009058193的 DBCC 结果。 对象 'sys.queue_messages_2009058193' 的 0 页中有 0 行。 sys.queue_messages_2041058307的 DBCC 结果。 对象 'sys.queue_messages_2041058307' 的 0 页中有 0 行。 HX_NUMIDENTI的 DBCC 结果。 对象 'HX_NUMIDENTI' 的 0 页中有 0 行。 MH_AUTORUN的 DBCC 结果。 对象 'MH_AUTORUN' 的 1 页中有 2 行。 MH_CWRZ的 DBCC 结果。 对象 'MH_CWRZ' 的 194 页中有 9159 行。 CHECKDB 在数据库 'Portal' 中发现 0 个分配错误和 0 个一致性错误。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
dbcc checkdb(Portal) with tablock
2、数据库重命名、修改恢复模式、修改用户模式
--数据库重命名 ALTER DATABASE WC MODIFY NAME = test
--设置数据库为完整恢复模式 alter database test set recovery full
--只允许一个用户访问数据库 alter database test set single_user with rollback after 10 seconds --指定多少秒后回滚事务
--只有sysadmin,dbcreator,db_owner角色的成员可以访问数据库 alter database wc set restricted_user with rollback immediate --立即回滚事务
--多用户模式 alter database wc set multi_user with no_wait --不等待立即改变,如不能立即完成,那么会导致执行错误
3、扩展数据库:增加文件组、增加文件、修改文件大小、修改文件的逻辑名称
--添加文件组 ALTER DATABASE test ADD FILEGROUP WC_FG8
--添加数据文件 ALTER DATABASE test ADD FILE ( NAME = WC_FG8, FILENAME = 'D:\WC_FG8.ndf', SIZE = 1mb, MAXSIZE = 10mb, FILEGROWTH = 1mb ) TO FILEGROUP WC_FG8
--添加日志文件 ALTER DATABASE test ADD LOG FILE ( NAME = WC_LOG3, FILENAME = 'D:\WC_FG3.LDF', SIZE = 1MB, MAXSIZE = 10MB, FILEGROWTH = 100KB )
--修改数据文件的大小,增长大小,最大大小 ALTER DATABASE test MODIFY FILE ( NAME = 'WC_FG8', SIZE = 2MB, --必须大于之前的大小,否则报错 MAXSIZE= 8MB, FILEGROWTH = 10% )
--修改数据文件或日志文件的逻辑名称 ALTER DATABASE test MODIFY FILE ( NAME = WC_LOG3, NEWNAME = WC_FG33 )
4、移动文件
--由于在SQL Server中文件组、文件不能离线,所以必须把整个数据库设置为离线 checkpoint go ALTER DATABASE WC SET OFFLINE go
--修改文件名称 ALTER DATABASE WC MODIFY FILE ( NAME = WC_fg8, FILENAME = 'D:\WC\WC_FG8.NDF' ) go
--把原来的文件复制到新的位置:'D:\WC\WC_FG8.NDF' --设置数据库在线 ALTER DATABASE WC SET ONLINE
5、设置默认文件组、只读文件组
--设置默认文件组 ALTER DATABASE WC MODIFY FILEGROUP WC_FG8 DEFAULT
--设为只读文件组 --如果文件已经是某个属性,不能再次设置相同属性 ALTER DATABASE WC MODIFY FILEGROUP WC_FG8 READ_WRITE
6、收缩数据库、收缩文件
--收缩数据库 DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID 10 --收缩后,数据库文件中空间空间占用的百分比 ) DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID 10, --收缩后,数据库文件中空闲空间占用的百分比 NOTRUNCATE --在收缩时,通过数据移动来腾出自由空间 ) DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID 10, --收缩后,数据库文件中空间空间占用的百分比 TRUNCATEONLY --在收缩时,只是把文件尾部的空闲空间释放 )
--收缩文件 DBCC SHRINKFILE(wc_fg8, --要收缩的数据文件逻辑名称 7 --要收缩的目标大小,以MB为单位 ) DBCC SHRINKFILE(wc_fg8, --要收缩的数据文件逻辑名称 EMPTYFILE --清空文件,清空文件后,才可以删除文件 )
7、删除文件、删除文件组
1.要删除文件,必须要先把文件上的数据删除,或者移动到其他文件或文件组上
--删除数据后,必须要清空文件的内容 DBCC SHRINKFILE(WC_FG8,EMPTYFILE)
--删除文件,同时也在文件系统底层删除了文件 ALTER DATABASE test REMOVE FILE WC_FG8
2.要删除文件组,必须先删除所有文件
--最后删除文件组 ALTER DATABASE test REMOVE FILEGROUP WC_FG8
8、重新组织索引
ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock] REORGANIZE WITH ( LOB_COMPACTION = ON )
use test go select 'DBCC INDEXDEFRAG('+db_name()+','+o.name+','+i.name + ');' --,db_name(), --o.name, --i.name, --i.* from sysindexes i inner join sysobjects o on i.id = o.id where o.xtype = 'U' and i.indid >0 and charindex('WA_Sys',i.name) = 0
9、重新生成索引
ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock] REBUILD PARTITION = ALL WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ONLINE = OFF, SORT_IN_TEMPDB = OFF )
10、更新统计信息
--更新表中某个的统计信息 update statistics temp_lock(_WA_Sys_00000001_07020F21) update statistics temp_lock(_WA_Sys_00000001_07020F21) with sample 50 percent update statistics temp_lock(_WA_Sys_00000001_07020F21) with resample, --使用最近的采样速率更新每个统计信息 norecompute --查询优化器将完成此统计信息更新并禁用将来的更新
--更新索引的统计信息 update statistics temp_lock(idx_temp_lock_id) with fullscan
--更新表的所有统计信息 update statistics txt with all
11、执行SQL Server代理作业
exec msdb.dbo.sp_start_job @job_name =N'job_update_sql';