簡介
Transact-SQL 程式語言提供 DBCC 語句作為 Microsoft® SQL Server™ 2000 的資料庫控制台命令。這些語句對資料庫的物理和邏輯一致性進行檢查。許多 DBCC 語句能夠對檢測到的問題進行修復。分類
資料庫控制台命令語句被分為以下類別。語句分類 執行
維護語句 對資料庫、索引或檔案組進行維護的任務。
雜項語句 諸如啟用行級鎖定或從記憶體中刪除動態程式庫 (DLL) 等雜項任務。
狀態語句 狀態檢查。
驗證語句 對資料庫、表、索引、目錄、檔案組、系統表或資料庫頁的分配進行的驗證操作。
SQL Server 2000 的 DBCC 語句使用輸入參數和返回值。所有 DBCC 語句參數都可以接受 Unicode 和 dbcs 字面值。
使用 DBCC 結果集輸出
許多 DBCC 命令可以產生表格格式的輸出(使用 WITH TABLERESULTS 選項)。該信息可裝載到表中以便將來使用。以下顯示一個示例腳本:
-- Create the table to accept the results
CREATE TABLE #tracestatus (
TraceFlag INT,
Status INT
)
-- Execute the command, putting the results in the table
INSERT INTO #tracestatus
EXEC ('DBCC TRACESTATUS (-1) WITH NO_INFOMSGS')
-- Display the results
SELECT *
FROM #tracestatus
GO
維護語句
DBCC CLEANTABLE ('db_name','table_name') -----回收Alter table drop column語句刪除可變長度列或textDBCC DBREINDEX -----重建指定資料庫的一個或多個索引
DBCC INDEXDEFRAG ------對表或視圖上的索引和非聚集索引進行碎片整理
DBCC pintable (db_id,object_id) ------將表數據駐留在記憶體中
查看哪些表駐留在記憶體的方法是:
select objectproperty(object_id('tablename'),‘tableispinned')
DBCC UNPINTABLE (db_id,object_id) -----撤消駐留在記憶體中的表
DBCC SHRINKDATABASE(db_id,int) -----收縮指定資料庫的數據檔案和日誌檔案大小
DBCC SHRINKFILE(file_name,int) -----收縮相關資料庫的指定數據檔案和日誌檔案大小
雜項語句
DBCC dllname (FREE) ----查看載入的擴展PROC在記憶體中卸載指定的擴展過程動態程式庫(dll)DBCC HELP ---查詢所有DBCC命令
DBCC PINTABLE ---將表數據駐留在記憶體中
DBCC rowlock
DBCC TRACEOFF ----關閉跟蹤標記
DBCC TRACEON ----打開跟蹤標記
DBCC UNPINTABLE ---撤消駐留在記憶體中的表
狀態語句
DBCC PINTABLE ---將表數據駐留在記憶體中DBCC OPENTRAN ----查詢某個資料庫執行時間最久的事務,由哪個程式擁有
DBCC OUTPUTBUFFER
DBCC FREEPROCCACHE ----從過程緩衝區刪除所有元素
DBCC SHOWCONTIG ---顯示指定表的數據和索引的碎片信息
DBCC SHOW_STATISTICS ----顯示指定表上的指定目標的當前分布統計信息
DBCC SQLPERF ---可以用來檢查是否CPU使用達到瓶頸最關鍵的一個參考數據num runnable,表明當前有多少個執行緒再等待運行如果大於等於2,考慮CPU達到瓶頸
DBCC TRACESTATUS ---跟蹤標記狀態
DBCC USEROPTIONS ---返回當前連線的活動(設定)的SET選項
驗證語句
DBCC CHECKALLOC ----檢查指定資料庫的磁碟空間分配結構的一致性DBCC CHECKCATALOG ----檢查指定資料庫的系統表內和系統表間的一致性
DBCC CHECKCONSTRAINTS ----檢查指定表上的指定約束或所有約束的完整性
DBCC CHECKDB ----檢查資料庫中的所有對象的分配和結構完整性
DBCC CHECKFILEGROUP ----檢查指定檔案組中所有表在當前資料庫中的分配和結構完整性
DBCC CHECKIDENT ----檢查指定的當前標識值
DBCC CHECKTABLE ----檢查指定表或索引視圖的數據、索引及test、ntest和image頁的完整性
DBCC NEWALLOC
使用建議
1、在系統使用率較低時運行 CHECKDB。2、請確保未同時執行其它磁碟 I/O 操作,例如磁碟備份。
3、將 tempdb 放到單獨的磁碟系統或快速磁碟子系統中。
4、允許 tempdb 在驅動器上有足夠的擴展空間。 使用帶有 ESTIMATE ONLY 的 DBCC
估計 tempdb 將需要多少空間。
5、避免運行占用大量 CPU 的查詢或批處理作業。
6、在 DBCC 命令運行時,減少活動事務。
7、使用 NO_INFOMSGS 選項顯著減少處理和 tempdb 的使用。
8、考慮使用帶有 PHYSICAL_ONLY 選項的 DBCC CHECKDB 來檢查頁和記錄首部
的物理結構。當硬體導致的錯誤被置疑時,這個操作將執行快速檢查。