如何應(yīng)用SQL Server DBCC避免堵塞
在危急時刻,數(shù)據(jù)庫一致性檢測(DBCC)可能是你最重要的工具。本文向你簡單介紹DBCC的功能,它們包括:
檢測表和相關(guān)目錄的完整性。
檢測整個數(shù)據(jù)庫。
檢測數(shù)據(jù)庫頁的完整性。
重建任何指定表中的目錄。
你為何需要學(xué)習(xí)DBCC
如果你甚至還不知道為何使用DBCC,下面提供一些原因:
需要不斷分割數(shù)據(jù)庫頁(表和目錄),這可能會破壞分配。
目錄可能遭到破壞,或效率降低。
SQL Server引擎有時會誤解你的意圖。
需要大量更新時,事情可能會很麻煩(記住,任何指定的更新實際為刪除和插入)。
單個頁面,雖然仍然“健康”,但可能會失去它們的最優(yōu)存儲足跡。
如何運(yùn)行DBCC
你可以用兩種方法運(yùn)行DBCC:通過命令行窗口或查詢分析器(Query Analyzer)窗口。如果你認(rèn)為必要,你還可以確定其操作的時間。
DBCC命令包括以下擴(kuò)展:
CheckDB:檢測整個數(shù)據(jù)庫的一致性,是檢查數(shù)據(jù)庫破壞的基本方法。
CheckTable:檢測特定表的問題。
CheckAlloc:檢測數(shù)據(jù)庫的單個頁面,包括表和目錄。
Reindex:重建某個特定表的目錄。
CacheStats:說明當(dāng)前存儲在內(nèi)存緩存中的對象。
DropCleanBuffers:釋放當(dāng)前存儲在緩沖區(qū)中的所有數(shù)據(jù),這樣你就可以繼續(xù)進(jìn)行檢測,而不必使用前面的結(jié)果。
Errorlog:刪除(縮短)當(dāng)前日志。你可以考慮確定包含這個命令的操作的時間,一個星期左右運(yùn)行一次。
FlushProclnDB:清除特定數(shù)據(jù)庫的存儲過程緩存(使用它的數(shù)據(jù)庫id而不是名稱)。使用下列代碼找出id:
SELECT dbid FROM master.dbo.sysdatabases
WHERE name = '<name your poison>
IndexDefrag:減少目錄分裂,但不給文件加鎖,以便用戶能夠繼續(xù)應(yīng)用數(shù)據(jù)庫。
CheckCatalog:檢測特定數(shù)據(jù)庫表及表之間的一致性(后者意味著使用外鍵等。)
關(guān)鍵字:SQL Server 、DBCC、數(shù)據(jù)庫
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解