DBCC 用法
今天把DBCC命令都一一使用了一下,做了筆記,防止忘記. 在呼叫命令時使用了一些引數,其中'taobaoitem_0003'是表名,'ix_taobaoitem_0003'是索引,'taobao'是資料庫名稱,'taobao3'是資料庫檔案.
Transact-SQL 程式語言提供 DBCC 語句作為 SQL Server 的資料庫控制檯命令。
資料庫控制檯命令語句可分為以下類別。
命令類別 |
執行 |
維護 |
對資料庫、索引或檔案組進行維護的任務。 |
雜項 |
雜項任務,如啟用跟蹤標誌或從記憶體中刪除 DLL。 |
資訊 |
收集並顯示各種型別資訊的任務。 |
驗證 |
對資料庫、表、索引、目錄、檔案組或資料庫頁的分配進行的驗證操作。 |
DBCC 命令使用輸入引數並返回值。所有 DBCC 命令引數都可以接受 Unicode 和 DBCS 文字。
資訊語句
DBCC INPUTBUFFER:顯示從客戶端傳送到 Microsoft SQL Server 2005 例項的最後一個語句。
格式:DBCC INPUTBUFFER ( session_id [ , request_id ] )[WITH NO_INFOMSGS ]
DBCC OUTPUTBUFFER:以十六進位制和 ASCII 格式返回指定 session_id 的當前輸出緩衝區。
格式:DBCC OUTPUTBUFFER ( session_id [ , request_id ] )[ WITH NO_INFOMSGS ]
DBCC SHOWCONTIG :顯示指定的表或檢視的資料和索引的碎片資訊。
比如:dbcc showcontig ('taobaoitem_0003')
DBCC OPENTRAN:如果在指定資料庫記憶體在最早的活動事務和最早的分散式和非分散式複製事務,則顯示與之有關的資訊。
DBCC SQLPERF:為所有資料庫提供事務日誌空間用法的統計資訊。也可以用於重置等待和閂鎖的統計資訊。
格式:DBCC SQLPERF ([ LOGSPACE ]| [ "sys.dm_os_latch_stats" , CLEAR ] | [ "sys.dm_os_wait_stats" , CLEAR ]) [WITH NO_INFOMSGS ]
比如:dbcc SQLPERF (LOGSPACE )
dbcc SQLPERF ("sys.dm_os_wait_stats" , CLEAR )
DBCC TRACESTATUS:顯示跟蹤標誌的狀態
DBCC PROCCACHE:以表格格式顯示有關過程快取的資訊。
DBCC USEROPTIONS:返回當前連線的活動(設定)的 SET 選項。
DBCC SHOW_STATISTICS:顯示指定表上的指定目標的當前分發統計資訊。
比如:dbcc show_STATISTICS('taobaoitem_0003','ix_taobaoitem_0003')
驗證語句
DBCC CHECKALLOC:檢查指定資料庫的磁碟空間分配結構的一致性。
比如;DBCC CHECKALLOC ('taobao')
DBCC CHECKFILEGROUP:檢查當前資料庫中指定檔案組中的所有表和索引檢視的分配和結構完整性。
比如:DBCC CHECKFILEGROUP ('taobao3')
DBCC CHECKCATALOG:檢查指定資料庫內的目錄一致性。
比如:DBCC CHECKCATALOG ('taobao')
DBCC CHECKIDENT:檢查指定表的當前標識值,如有必要,則更改標識值。
比如:DBCC CHECKIDENT ('taobaoitem_0003')
DBCC CHECKCONSTRAINTS:檢查當前資料庫中指定表上的指定約束或所有約束的完整性。
DBCC CHECKTABLE:檢查組成表或索引檢視的所有頁和結構的完整性。
DBCC CHECKDB:通過執行下列操作檢查指定資料庫中所有物件的邏輯和物理完整性:
- 對資料庫執行 DBCC CHECKALLOC。
- 對資料庫中的每個表和檢視執行 DBCC CHECKTABLE。
- 對資料庫執行 DBCC CHECKCATALOG。
- 驗證資料庫中每個索引檢視的內容。
- 驗證資料庫中的 Service Broker 資料。
維護語句
DBCC CLEANTABLE:回收表或索引檢視中已刪除的可變長度列的空間。
比如:DBCC cleantable ('taobao','taobaoitem_0003')
DBCC INDEXDEFRAG:指定表或檢視的索引碎片整理。
比如:DBCC INDEXDEFRAG ('taobao','taobaoitem_0003')
Pages Scanned Pages Moved Pages Removed
------------- ----------- -------------
359 346 8
(1 row(s) affected)
DBCC DBREINDEX :對指定資料庫中的表重新生成一個或多個索引。
比如:DBCC DBREINDEX ( 'taobaoitem_0003','ix_taobaoitem_0003')
DBCC SHRINKDATABASE :收縮指定資料庫中的資料檔案和日誌檔案的大小。
比如:DBCC SHRINKDATABASE ('taobao')
DBCC SHRINKFILE (Transact-SQL):收縮當前資料庫的指定資料或日誌檔案的大小
比如:DBCC SHRINKFILE ('TaoBao3')
DBCC FREEPROCCACHE:從過程快取中刪除所有元素。
DBCC UPDATEUSAGE:報告目錄檢視中的頁數和行數錯誤並進行更正。這些錯誤可能導致 sp_spaceused 系統儲存過程返回不正確的空間使用報告。
雜項語句
DBCC dllname (FREE):從記憶體中上載指定的擴充套件儲存過程 DLL。
DBCC HELP:返回指定的 DBCC 命令的語法資訊。
比如:DBCC HELP ('checkdb')
DBCC FREESESSIONCACHE:重新整理針對 Microsoft SQL Server 例項執行的分散式查詢所使用的分散式查詢連線快取。
DBCC TRACEON :啟用指定的跟蹤標記。
格式:DBCC TRACEON ( trace# [ ,...n ][ , -1 ] ) [ WITH NO_INFOMSGS ]
DBCC TRACEOFF :禁用指定的跟蹤標記。
DBCC FREESYSTEMCACHE:從所有快取中釋放所有未使用的快取條目。SQL Server 2005 資料庫引擎會事先在後臺清理未使用的快取條目,以使記憶體可用於當前條目。但是,可以使用此命令從所有快取中手動刪除未使用的條目。
比如;DBCC FREESYSTEMCACHE('all')