複製鏈接
請複製以下鏈接發送給好友

DBCC

鎖定
Transact-SQL 編程語言提供 DBCC語句作為 Microsoft SQL Server™ 2000 的數據庫控制枱命令。這些語句對數據庫的物理和邏輯一致性進行檢查。許多 DBCC 語句能夠對檢測到的問題進行修復。
中文名
DBCC
相    關
Transact-SQL 編程語言
屬    性
數據庫控制枱命令
功    能
對數據庫的物理進行檢查

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維護語句

DBCC CLEANTABLE ('db_name','table_name') -----回收Alter table drop column語句刪除可變長度列或text
DBCC 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雜項語句

DBCC dllname (FREE) ----查看加載的擴展PROC在內存中卸載指定的擴展過程動態鏈接庫(dll—)
DBCC HELP ---查詢所有DBCC命令
DBCC PINTABLE ---將表數據駐留在內存中
DBCC ROWLOCK
DBCC TRACEOFF ----關閉跟蹤標記
DBCC TRACEON ----打開跟蹤標記
DBCC UNPINTABLE ---撤消駐留在內存中的表

DBCC狀態語句

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驗證語句

DBCC CHECKALLOC ----檢查指定數據庫的磁盤空間分配結構的一致性
DBCC CHECKCATALOG ----檢查指定數據庫的系統表內和系統表間的一致性
DBCC CHECKCONSTRAINTS ----檢查指定表上的指定約束或所有約束的完整性
DBCC CHECKDB ----檢查數據庫中的所有對象的分配和結構完整性
DBCC CHECKFILEGROUP ----檢查指定文件組中所有表在當前數據庫中的分配和結構完整性
DBCC CHECKIDENT ----檢查指定的當前標識值
DBCC CHECKTABLE ----檢查指定表或索引視圖的數據、索引及test、ntest和image頁的完整性
DBCC NEWALLOC

DBCC使用建議

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 來檢查頁和記錄首部
物理結構。當硬件導致的錯誤被置疑時,這個操作將執行快速檢查。