SQL Server 的 DBCC CHECKDB 的使用

推荐每次备份数据库以后进行一次,要获得好的 DBCC 性能的一些建议

  • 在系统使用率较低时运行 CHECKDB。
  • 请确保未同时执行其它磁盘 I/O 操作,例如磁盘备份。
  • tempdb 放到单独的磁盘系统或快速磁盘子系统中。
  • 允许 tempdb 在驱动器上有足够的扩展空间。使用带有 ESTIMATE ONLY 的 DBCC 估计 tempdb 将需要多少空间。
  • 避免运行占用大量 CPU 的查询或批处理作业。
  • 在 DBCC 命令运行时,减少活动事务。
  • 使用 NO_INFOMSGS 选项显著减少处理和 tempdb 的使用。

USE master
DECLARE @dbName VARCHAR(255)
SET @dbName='需要修复的数据库实体的名称'
EXEC SP_DBOPTION @dbName, N'single', N'true'   --单用户状态
DBCC CHECKDB(@dbName,REPAIR_ALLOW_DATA_LOSS)
DBCC CHECKDB(@dbName,REPAIR_REBUILD)
EXEC SP_DBOPTION @dbName, N'single', N'false'  --多用户状态

发表评论