SQL Server DBA日常运维语句

时间:2023-03-09 05:07:25
SQL Server DBA日常运维语句

1、检查数据库完整性  

dbcc checkdb(Portal)

检查数据库完整性checkdb

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

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 --立即回滚事务

只有sysadmin,dbcreator,db_owner角色的成员可以访问数据库

--多用户模式
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

设置数据库为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';

执行代理作业