[SQL SERVER] 基礎 DBCC CHECKDB 在做什麼、要花多久時間、大型資料庫執行CHECKDB方法

DBCC CHECKDB用于检查SQL Server数据库的完整性,涉及对象、系统表、分配、表、目录、索引和服务broker等。执行时间受数据库大小、磁盘I/O、CPU负载、tempdb速度等因素影响。对于大型数据库,可考虑分批执行CHECKTABLE、CHECKALLOC和CHECKCATALOG。若需修复数据库,需切换到单用户模式并使用REPAIR选项,但可能有数据丢失风险。
摘要由CSDN通过智能技术生成

DBCC CHECKDB檢查指定資料庫中所有物件的完整性

  • 檢查相關系統表
  • 執行DBCC CHECKALLOC  (檢查資料庫所有頁面分配)
  • 執行DBCC CHECKTABLE  (
  • 執行DBCC CHECKCATALOG
  • 驗證索引檢視內容
  • 驗證Service Broker資料

執行CHECKDB要花多久時間,跟下面因素有關

  • 資料庫本身大小
  • 磁碟IO能力  (checkdb需要把資料庫從頭到尾讀一次,故IO速度是最重要的因素)
  • CPU目前的負荷、平行處理度  (checkdb本身需要CPU做驗證工作)
  • tempdb磁碟速度   (需把暫存資料存放在記憶體或tempdb上)
  • 資料庫內物件類型  (LOB、XML、computed column等等驗證需更多時間)
  • 使用的參數  (with physical_only可以只做實體結構完整性檢查)
  • 錯誤數量  (錯誤的數量越多,時間花費越久)

實際案例,花費時間參考

1. 約80G (SSD)資料庫,約8分鐘完成

2. 約40G 舊資料庫,跑約30分鐘....

所以CHECKDB每台機器時間跟資料庫內容差異,各會不同,可以用以下語法估計時間

雖然不太精確,但也有一個估算時間

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值