Sql-Server

與 DBCC CHECKTABLE 相關的成本?

  • December 14, 2020

由於 CPU 和 tempdb 使用率高的執行時間較長,因此具有日誌傳送 VLDB 並且不要在主伺服器上執行DBCC CHECKDB 。已閱讀有關DBCC CHECKTABLE作為更細粒度數據完整性檢查選項的可能性。DBCC CHECKTABLE是否具有類似於DBCC CHECKDB的成本級別?它可以在工作時間執行而不會對伺服器 CPU 和 TempDB 性能產生不利影響嗎?

正如@Mo64 所提到的,CHECKTABLE 背後的程式碼確實可能是CHECDB 花費的大量時間。即,“CHECKTABLE 的總和”應該與 CHECKDB 大致相同,可以想像。

但是,預設情況下 CHECKTABLE 使用數據庫快照。不是“表快照”,因為沒有這樣的概念。即,您可以檢查一個表,如果同時在其他表上發生修改,則該數據的原始數據需要首先保存在快照文件中。這是“CHECKTABLE 的總和”可以超過一個 CHECKDB 的一個方面。

無論如何,您的問題是關於成本的。是的,幾乎相同(或者更確切地說,對於 CHECKTABLE 而言,它不會(多)少。您擁有整個數據庫的數據庫快照和寫時複製(儘管當您檢查時快照會存在很短的時間)只有一張表)。SQL server 也應該需要 tempdb 中的空間。

以上是理論上的推理,我應該補充一下。

引用自:https://dba.stackexchange.com/questions/281478