SQL Server DBA维护常用语句

时间:2024-01-22 01:47:00 

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常用语句
0
投稿

猜你喜欢

  • Python Dataframe常见索引方式详解

    2023-06-21 21:03:25
  • SQL SERVER使用表分区优化性能

    2024-01-14 01:32:59
  • Python selenium 三种等待方式详解(必会)

    2021-03-13 16:03:33
  • SQL中distinct的用法(四种示例分析)

    2024-01-15 17:18:40
  • JavaScript实现Fly Bird小游戏

    2024-04-25 13:11:46
  • Python爬取腾讯视频评论的思路详解

    2021-05-30 23:04:43
  • Bootstrap DateTime Picker日历控件简单应用

    2024-05-11 09:34:14
  • MybatisPlus如何处理Mysql的json类型

    2024-01-27 14:23:19
  • 初探MS SQL CE+Codesmith

    2009-05-11 09:03:00
  • python tkinter实现弹窗的输入输出

    2021-10-03 14:58:42
  • Go语言实现的树形结构数据比较算法实例

    2023-08-06 18:18:39
  • python数据可视化plt库实例详解

    2022-11-30 21:23:28
  • 简单谈谈python基本数据类型

    2022-07-25 03:52:46
  • Go语言切片常考的面试真题解析

    2024-04-30 10:07:16
  • Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    2021-07-20 19:04:38
  • 使用springboot通过spi机制加载mysql驱动的过程

    2024-01-27 09:12:26
  • JS与Ajax Get和Post在使用上的区别实例详解

    2024-04-23 09:07:40
  • Python实现批量下载音效素材详解

    2021-09-19 02:08:27
  • pygame游戏之旅 游戏中添加显示文字

    2023-03-26 02:56:23
  • MySQL 分组查询的优化方法

    2024-01-20 12:21:48
  • asp之家 网络编程 m.aspxhome.com