视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQLServerDBA维护常用语句
2020-11-09 07:05:22 责编:小采
文档


1、检查数据库完整性
代码如下:dbcc checkdb(test)
--通过加tablock提高速度
dbcc checkdb(test) 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       --不等待立即改变,如不能立即完成,那么会导致执行错误

2、扩展数据库:增加文件组、增加文件、修改文件大小、修改文件的逻辑名称
代码如下:
--添加文件组
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
)
3、移动文件
代码如下:--由于在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
4、设置默认文件组、只读文件组
代码如下:
--设置默认文件组
ALTER DATABASE WC
MODIFY FILEGROUP WC_FG8 DEFAULT


--设为只读文件组
--如果文件已经是某个属性,不能再次设置相同属性
ALTER DATABASE WC
MODIFY FILEGROUP WC_FG8 READ_WRITE
5、收缩数据库、 收缩文件
--收缩数据库 
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 --清空文件,清空文件后,才可以删除文件 
                )

6、删除文件、 删除文件组
代码如下:
--要删除文件,必须要先把文件上的数据删除,或者移动到其他文件或文件组上

--删除数据后,必须要清空文件的内容
DBCC SHRINKFILE(WC_FG8,EMPTYFILE)

--删除文件,同时也在文件系统底层删除了文件
ALTER DATABASE test
REMOVE FILE WC_FG8

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

--最后删除文件组
ALTER DATABASE test
REMOVE FILEGROUP WC_FG8
7、重新组织索引

ALTER INDEX [idx_temp_lock_id] ON [dbo].[temp_lock]
REORGANIZE
WITH ( LOB_COMPACTION = ON )
8、重新生成索引
代码如下:
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 )
9、更新统计信息
代码如下:
--更新表中某个的统计信息 
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
10、执行SQL Server代理作业

11、备份数据库(完整、差异、日志备份),这个在其他文章中已有详细描述,这里不再赘述。
代码如下:
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 )

您可能感兴趣的文章:

  • SQLServer 常用语句(按功能分)
  • SQLServer 管理常用SQL语句
  • Sqlserver 常用日期时间函数
  • 诊断SQLSERVER问题常用的日志概述及使用
  • 下载本文
    显示全文
    专题