DBCC CHECKDB優化工具效能

iSQlServer發表於2008-12-23

DBCC CHECKDB 及相關語句通常必須從磁碟將每個已分配的頁讀取到記憶體中,才能對其進行檢查。如果當系統上已經存在大量活動時執行 DBCC CHECKDB,會由於以下兩個原因降低 DBCC 的效能。首先,可用的記憶體減少,並且 SQL Server 資料庫引擎被迫將 DBCC CHECKDB 的一些內部資料假離線儲存到 tempdb 資料庫中。其次,DBCC CHECKDB 會試圖優化它從磁碟讀取資料的方式。如果某一高強度工作負荷也在使用同一磁碟,那麼就會大大降低優化效能,從而導致執行速度變慢。

由於 tempdb 資料庫駐留在磁碟上,因此在將資料寫入或寫出磁碟時來自 I/O 操作的瓶頸會降低效能。針對大型資料庫(相對於可用記憶體的大小而言)執行 DBCC CHECKDB 會導致假離線儲存到 tempdb 資料庫,而與系統活動無關。因此,應將 tempdb 資料庫放置在獨立於使用者資料庫的一個快速磁碟上或多個磁碟上,如 RAID 裝置。有關詳細資訊,請參閱 ALTER DATABASE (Transact-SQL)和 RAID。

注意:
執行 DBCC CHECKDB 時會對資料庫中的每個表自動執行 DBCC CHECKTABLE,以及 DBCC CHECKALLOC 和 DBCC CHECKCATALOG,因而不必單獨執行這些語句。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-520851/,如需轉載,請註明出處,否則將追究法律責任。

相關文章