sql server dbcc常用命令使用詳解

datapeng發表於2014-02-17

常用DBCC命令詳解

Transact-SQL 程式語言提供 DBCC 語句作為 SQL Server 的資料庫控制檯命令。

DBCC 命令使用輸入引數並返回值。所有 DBCC 命令引數都可以接受 Unicode 和 DBCS 文字。


維護命令
1、DBCC INPUTBUFFER
功能:顯示從客戶端傳送到 Microsoft SQL Server例項的最後一個語句。
格式:DBCC INPUTBUFFER ( session_id [ , request_id ] )[WITH NO_INFOMSGS ]
執行許可權:使用者必須是 sysadmin 固定伺服器角色的成員。
使用者必須具有 VIEW SERVER STATE 許可權。
相關命令:SELECT @@spid
SELECT request_id FROM sys.dm_exec_requests WHERE session_id = @@spid

2、DBCC OUTPUTBUFFER
功能:以十六進位制和 ASCII 格式返回指定 session_id 的當前輸出緩衝區。
格式:DBCC OUTPUTBUFFER ( session_id [ , request_id ] )[ WITH NO_INFOMSGS ]
執行許可權:使用者必須是 sysadmin 固定伺服器角色的成員。
相關命令:SELECT @@spid
SELECT request_id FROM sys.dm_exec_requests WHERE session_id = @@spid

3、DBCC SHOWCONTIG
功能:顯示指定的表或檢視的資料和索引的碎片資訊。
格式:DBCC SHOWCONTIG [ (物件名) ]
 [ WITH  { [ , [ ALL_INDEXES ] ] [ , [ TABLERESULTS ] ] [ , [ FAST ] ] [ , [ ALL_LEVELS ] ]  [ NO_INFOMSGS ] } ]
執行許可權:使用者必須是物件所有者,或是 sysadmin 固定伺服器角色、db_owner 固定資料庫角色或 db_ddladmin 固定資料庫角色的成員。
例:DBCC SHOWCONTIG ('TableName')
說明:可使用DBCC SHOWCONTIG 和 DBCC INDEXDEFRAG 對資料庫中的索引進行碎片整理

4、DBCC OPENTRAN
功能:如果在指定資料庫記憶體在最早的活動事務和最早的分散式和非分散式複製事務,則顯示與之有關的資訊。
格式:DBCC OPENTRAN [ ( [ database_name | database_id | 0 ] ) ]  
{ [ WITH TABLERESULTS ] [ , [ NO_INFOMSGS ] ] }]
例:DBCC OPENTRAN (DataBaseName) WITH TABLERESULTS

5、DBCC SQLPERF
功能:為所有資料庫提供事務日誌空間用法的統計資訊。也可以用於重置等待和閂鎖的統計資訊。
格式:DBCC SQLPERF ([ LOGSPACE ]|
 [ "sys.dm_os_latch_stats" , CLEAR ] |
 [ "sys.dm_os_wait_stats" , CLEAR ])
[WITH NO_INFOMSGS ]
例:DBCC SQLPERF (LOGSPACE)

6、DBCC TRACESTATUS
功能:顯示跟蹤標誌的狀態
格式:DBCC TRACESTATUS ( [ [ trace# [ ,...n ] ] [ , ] [ -1 ] ] ) [ WITH NO_INFOMSGS ]

7、DBCC PROCCACHE
功能:以表格格式顯示有關過程快取的資訊。
格式:DBCC PROCCACHE [ WITH NO_INFOMSGS ]
執行許可權:使用者必須是 sysadmin 固定伺服器角色、db_owner 固定資料庫角色的成員。

8、DBCC USEROPTIONS
功能:返回當前連線的活動(設定)的 SET 選項。
格式:DBCC USEROPTIONS [ WITH NO_INFOMSGS ]
執行許可權:要求具有 public 角色成員身份。
例:DBCC USEROPTIONS

9、DBCC SHOW_STATISTICS
功能:顯示指定表上的指定目標的當前分發統計資訊。

10、DBCC SHOWFILESTATS
功能:顯示檔案使用情況的,需要透過換算所得
如顯示的是extent,一個extent為64k。totalexents*64/1024/1024 換算成gb
驗證語句

11、DBCC CHECKALLOC
功能:檢查指定資料庫的磁碟空間分配結構的一致性。
例:DBCC CHECKALLOC ('DataBaseName')
執行許可權:要求具有 sysadmin 固定伺服器角色或 db_owner 固定資料庫角色的成員身份。

12、DBCC CHECKFILEGROUP
功能:檢查當前資料庫中指定檔案組中的所有表和索引檢視的分配和結構完整性。
格式:比如:DBCC CHECKFILEGROUP ('DataBaseName')

13、DBCC CHECKCATALOG
功能:檢查指定資料庫內的目錄一致性。
比如:DBCC CHECKCATALOG ('datapeng')

14、DBCC CHECKIDENT
功能:檢查指定表的當前標識值,如有必要,則更改標識值。

比如:DBCC CHECKIDENT ('datapeng01')

15、DBCC CHECKCONSTRAINTS
功能:檢查當前資料庫中指定表上的指定約束或所有約束的完整性。

16、DBCC CHECKTABLE
功能:檢查組成表或索引檢視的所有頁和結構的完整性。

17、DBCC CHECKDB
功能:透過執行下列操作檢查指定資料庫中所有物件的邏輯和物理完整性:

對資料庫執行 DBCC CHECKALLOC。
對資料庫中的每個表和檢視執行 DBCC CHECKTABLE。
對資料庫執行 DBCC CHECKCATALOG。
驗證資料庫中每個索引檢視的內容。
驗證資料庫中的 Service Broker 資料。

維護語句

18、DBCC CLEANTABLE
功能:回收表或索引檢視中已刪除的可變長度列的空間。

比如:DBCC cleantable ('datapeng','datapeng01')

19、DBCC INDEXDEFRAG
功能:指定表或檢視的索引碎片整理。

比如:DBCC INDEXDEFRAG ('datapeng','datapeng01')

Pages Scanned Pages Moved Pages Removed------------- ----------- -------------359           346         8(1 row(s) affected)

20、DBCC DBREINDEX
功能:對指定資料庫中的表重新生成一個或多個索引。

比如:DBCC DBREINDEX ( 'datapeng','datapeng01')

21、DBCC SHRINKDATABASE
功能:收縮指定資料庫中的資料檔案和日誌檔案的大小。

比如:DBCC SHRINKDATABASE ('datapeng')

21、DBCC SHRINKFILE
功能:收縮當前資料庫的指定資料或日誌檔案的大小
比如:DBCC SHRINKFILE ('datapeng')

22、DBCC FREEPROCCACHE
功能:從過程快取中刪除所有元素。

23、DBCC UPDATEUSAGE
功能:報告目錄檢視中的頁數和行數錯誤並進行更正。這些錯誤可能導致 sp_spaceused 系統儲存過程返回不正確的空間使用報告。

雜項語句

24、DBCC dllname (FREE)
功能:從記憶體中上載指定的擴充套件儲存過程 DLL。

25、DBCC HELP
功能:返回指定的 DBCC 命令的語法資訊。

比如:DBCC   HELP ('checkdb')

26、DBCC FREESESSIONCACHE
功能:重新整理針對 Microsoft SQL Server 例項執行的分散式查詢所使用的分散式查詢連線快取。

27、DBCC TRACEON
功能:啟用指定的跟蹤標記。

格式:DBCC TRACEON ( trace# [ ,...n ][ , -1 ] ) [ WITH NO_INFOMSGS ]

28、DBCC TRACEOFF
功能:禁用指定的跟蹤標記。
DBCC FREESYSTEMCACHE:從所有快取中釋放所有未使用的快取條目。SQL Server 2005 資料庫引擎會事先在後臺清理未使用的快取條目,以使記憶體可用於當前條目。但是,可以使用此命令從所有快取中手動刪除未使用的條目。

比如;DBCC FREESYSTEMCACHE('all')

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1082379/,如需轉載,請註明出處,否則將追究法律責任。

相關文章