SQL Server DBA维护常用语句

2023年 4月 19日 48.1k 0

1、检查数据库完整性 复制代码 代码如下:dbcc checkdb(test) --通过加tablock提高速度 dbcc checkdb(test) with tablock 2、数据库重命名、修改恢复模式、修改用户模式 复制代码 代码如下: --数据库重

1、检查数据库完整性复制代码 代码如下:dbcc checkdb(test)--通过加tablock提高速度 dbcc checkdb(test) with tablock2、数据库重命名、修改恢复模式、修改用户模式复制代码 代码如下:--数据库重命名  ALTER DATABASE WC  MODIFY NAME = test

--设置数据库为完整恢复模式alter database testset 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 testADD FILEGROUP WC_FG8

--添加数据文件ALTER DATABASE testADD FILE(  NAME = WC_FG8,  FILENAME = 'D:\WC_FG8.ndf',  SIZE = 1mb,  MAXSIZE = 10mb,  FILEGROWTH = 1mb)TO FILEGROUP WC_FG8

--添加日志文件ALTER DATABASE testADD LOG FILE(  NAME = WC_LOG3,  FILENAME = 'D:\WC_FG3.LDF',  SIZE = 1MB,  MAXSIZE = 10MB,  FILEGROWTH = 100KB)

--修改数据文件的大小,增长大小,最大大小ALTER DATABASE testMODIFY FILE(  NAME = 'WC_FG8',  SIZE = 2MB,      --必须大于之前的大小,否则报错  MAXSIZE= 8MB,  FILEGROWTH = 10%)

--修改数据文件或日志文件的逻辑名称ALTER DATABASE testMODIFY FILE(  NAME = WC_LOG3,  NEWNAME = WC_FG33)3、移动文件复制代码 代码如下:--由于在SQL Server中文件组、文件不能离线--所以必须把整个数据库设置为离线checkpointgo

ALTER DATABASE WCSET OFFLINEgo

--修改文件名称ALTER DATABASE WCMODIFY FILE(  NAME = WC_fg8,  FILENAME = 'D:\WC\WC_FG8.NDF')go

--把原来的文件复制到新的位置:'D:\WC\WC_FG8.NDF'

--设置数据库在线ALTER DATABASE WCSET ONLINE4、设置默认文件组、只读文件组复制代码 代码如下:--设置默认文件组ALTER DATABASE WCMODIFY FILEGROUP WC_FG8 DEFAULT

--设为只读文件组--如果文件已经是某个属性,不能再次设置相同属性ALTER DATABASE WCMODIFY FILEGROUP WC_FG8 READ_WRITE5、收缩数据库、 收缩文件--收缩数据库  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 testREMOVE FILE WC_FG8

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

--最后删除文件组ALTER DATABASE testREMOVE FILEGROUP WC_FG87、重新组织索引

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 all10、执行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 )

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论