MSSQL运维常用SQL

引用神秘大神的脚本,总结一下MSSQL数据库的常用的SQL ,一起学习……

1、检查数据库完整性

dbcc checkdb(test)

通过加tablock提高速度
dbcc checkdb(test) with tablock

2、数据库重命名、修改恢复模式、修改用户模式

--数据库重命名

ALTER DATABASE test

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 test

set restricted_user

with rollback immediate --立即回滚事务

--多用户模式

alter database test

set multi_user

with no_wait --不等待立即改变,如不能立即完成,那么会导致执行错误

3、设置默认文件组、只读文件组

--设置默认文件组

ALTER DATABASE test

MODIFY FILEGROUP test DEFAULT

--设为只读文件组

--如果文件已经是某个属性,不能再次设置相同属性

ALTER DATABASE test

MODIFY FILEGROUP test READ_WRITE
4、收缩数据库、收缩文件

--收缩数据库

DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID

10 --收缩后,数据库文件中空间空间占用的百分比

)

DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID

10, --收缩后,数据库文件中空闲空间占用的百分比

NOTRUNCATE --在收缩时,通过数据移动来腾出自由空间

)

DBCC SHRINKDATABASE('test', --要收缩的数据库名称或数据库ID

10, --收缩后,数据库文件中空间空间占用的百分比

TRUNCATEONLY --在收缩时,只是把文件尾部的空闲空间释放

)

--收缩文件

DBCC SHRINKFILE(test, --要收缩的数据文件逻辑名称

7 --要收缩的目标大小,以MB为单位

)

DBCC SHRINKFILE(test, --要收缩的数据文件逻辑名称

EMPTYFILE --清空文件,清空文件后,才可以删除文件

)
5、删除文件、删除文件组

--要删除文件,必须要先把文件上的数据删除,或者移动到其他文件或文件组上

--删除数据后,必须要清空文件的内容

DBCC SHRINKFILE(test,EMPTYFILE)

--删除文件,同时也在文件系统底层删除了文件

ALTER DATABASE test

REMOVE FILE test

--要删除文件组,必须先删除所有文件

--最后删除文件组

ALTER DATABASE test

REMOVE FILEGROUP test

6、重新组织索引

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 + ');'

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

7、重新生成索引

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 )

8、更新统计信息

--更新表中统计信息

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

部分脚本引于神秘大神,如有不妥,望指正。

版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

猜你还会喜欢下面的内容

    无相关信息

中国领先的互联网域名及云服务提供商

为您提供域名,比特币,P2P,大数据,云计算,虚拟主机,域名交易最新资讯报道

域名注册云服务器