程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何應用SQL Server中的DBCC避免堵塞

如何應用SQL Server中的DBCC避免堵塞

編輯:關於SqlServer

本文說明為何應該了解數據庫一致性檢測(DBCC),還解釋如何運行DBCC及應用它的五個擴展。

在危急時刻,數據庫一致性檢測(DBCC)可能是你最重要的工具。本文向你簡單介紹DBCC的功能,它們包括:

◆檢測表和相關目錄的完整性。

◆檢測整個數據庫。

◆檢測數據庫頁的完整性。

◆重建任何指定表中的目錄。

你為何需要學習DBCC

如果你甚至還不知道為何使用DBCC,下面提供一些原因:

◆需要不斷分割數據庫頁(表和目錄),這可能會破壞分配。

◆目錄可能遭到破壞,或效率降低。

◆SQL Server引擎有時會誤解你的意圖。

◆需要大量更新時,事情可能會很麻煩(記住,任何指定的更新實際為刪除和插入)。

◆單個頁面,雖然仍然“健康”,但可能會失去它們的最優存儲足跡。

如何運行DBCC

你可以用兩種方法運行DBCC:通過命令行窗口或查詢分析器(Query Analyzer)窗口。如果你認為必要,你還可以確定其操作的時間。(我從未感到有必要這樣做,因為在微軟的所有產品中,我對SQL Server的穩定性最為自信。我認為它是雷蒙德推出的最佳產品。但是,感覺也可能出錯。)

DBCC命令包括以下擴展:

◆CheckDB:檢測整個數據庫的一致性,是檢查數據庫破壞的基本方法。

◆CheckTable:檢測特定表的問題。

◆CheckAlloc:檢測數據庫的單個頁面,包括表和目錄。

◆Reindex:重建某個特定表的目錄。

◆CacheStats:說明當前存儲在內存緩存中的對象。

◆DropCleanBuffers:釋放當前存儲在緩沖區中的所有數據,這樣你就可以繼續進行檢測,而不必使用前面的結果。

◆Errorlog:刪除(縮短)當前日志。你可以考慮確定包含這個命令的操作的時間,一個星期左右運行一次。

◆FlushProclnDB:清除特定數據庫的存儲過程緩存(使用它的數據庫id而不是名稱)。使用下列代碼找出id:

SELECT dbid FROM master.dbo.sysdatabases
WHERE name = '<name your poison>

IndexDefrag:減少目錄分裂,但不給文件加鎖,以便用戶能夠繼續應用數據庫。

CheckCatalog:檢測特定數據庫表及表之間的一致性(後者意味著使用外鍵等。)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved