SQL Server數(shù)據(jù)庫管理員必備的DBCC命令
一、了解DBCC
DBCC(database consistenecy checker,簡稱dbcc) 是一個實用命令集,用來檢查數(shù)據(jù)庫的邏輯一致性及物理一致性。
數(shù)據(jù)庫控制臺命令語句可分為以下類別:
維護: 對數(shù)據(jù)庫、索引或文件組進行維護的任務。
雜項: 雜項任務,如啟用跟蹤標志或從內(nèi)存中刪除 DLL。
信息: 收集并顯示各種類型信息的任務。
驗證: 對數(shù)據(jù)庫、表、索引、目錄、文件組或數(shù)據(jù)庫頁的分配進行的驗證操作
二、DBBCC維護語句:對數(shù)據(jù)庫、索引或文件組進行維護的任務
DBCC CLEANTABLE。回收刪除的可變長度列和文本列的空間。
DBCC CLEANTABLE
(
{ 'database_name' | database_id | 0 }
,{ 'table_name' | table_id | 'view_name' | view_id }
[ , batch_size ]
)
[ WITH NO_INFOMSGS ]
DBCC INDEXDEFRAG。指定表或視圖的索引碎片整理。
DBCC INDEXDEFRAG
(
{ 'database_name' | database_id | 0 }
, { 'table_name' | table_id | 'view_name' | view_id }
, { 'index_name' | index_id }
, { partition_number | 0 }
)
[ WITH NO_INFOMSGS ]
DBCC DBREINDEX。 對指定數(shù)據(jù)庫中的表重新生成一個或多個索引。
DBCC DBREINDEX
(
'table_name'
[ , 'index_name' [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
DBCC SHRINKDATABASE。 收縮指定數(shù)據(jù)庫中的數(shù)據(jù)文件大小。
DBCC SHRINKDATABASE
( 'database_name' | database_id | 0
[ ,target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
[ WITH NO_INFOMSGS ]
DBCC DROPCLEANBUFFERS。 從緩沖池中刪除所有清除緩沖區(qū)。DBCC DROPCLEANBUFFERS [ WITH NO_INFOMSGS ]
DBCC SHRINKFILE。 收縮相關數(shù)據(jù)庫的指定數(shù)據(jù)文件或日志文件大小。
DBCC SHRINKFILE
(
{ 'file_name' | file_id }
{ [ , EMPTYFILE ]
| [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ]
}
)
[ WITH NO_INFOMSGS ]
DBCC FREEPROCCACHE。 從過程緩存中刪除所有元素。DBCC FREEPROCCACHE [ WITH NO_INFOMSGS ]
DBCC UPDATEUSAGE 報告目錄視圖中的頁數(shù)和行數(shù)錯誤并進行更正。
DBCC UPDATEUSAGE
( { 'database_name' | database_id | 0 }
[ , { 'table_name' | table_id | 'view_name' | view_id }
[ , { 'index_name' | index_id } ] ]
) [ WITH [ NO_INFOMSGS ] [ , ] [ COUNT_ROWS ]
]
三、DBBCC驗證語句:對數(shù)據(jù)庫、表、索引、目錄、文件組或數(shù)據(jù)庫頁的分配進行的驗證操作
DBCC CHECKALLOC。檢查指定數(shù)據(jù)庫的磁盤空間分配結構的一致性。
DBCC CHECKALLOC
[
(
[ 'database_name' | database_id | 0 ]
[ , NOINDEX
|
{ REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
} ]
)
]
[ WITH { [ ALL_ERRORMSGS ]
[ , NO_INFOMSGS ]
[ , TABLOCK ]
[ , ESTIMATEONLY ]
}
]
DBCC CHECKFILEGROUP。檢查當前數(shù)據(jù)庫中指定文件組中的所有表的分配和結構完整性。
DBCC CHECKFILEGROUP
[
(
[ { 'filegroup_name' | filegroup_id | 0 } ]
[ , NOINDEX ]
)
]
[ WITH
{
[ ALL_ERRORMSGS ]
[ NO_INFOMSGS ] ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
}
]
DBCC CHECKCATALOG。檢查指定數(shù)據(jù)庫內(nèi)的目錄一致性。數(shù)據(jù)庫必須聯(lián)機。
DBCC CHECKCATALOG
[
(
'database_name' | database_id | 0
)
]
[ WITH NO_INFOMSGS ]
DBCC CHECKIDENT。 檢查指定表的當前標識值,如有必要,則更改標識值。
DBCC CHECKIDENT
(
'table_name'
[ , {
NORESEED | { RESEED [ , new_reseed_value ] }
}
]
)
[ WITH NO_INFOMSGS ]
DBCC CHECKCONSTRAINTS。 檢查當前數(shù)據(jù)庫中指定表上的指定約束或所有約束的完整性。
DBCC CHECKCONSTRAINTS
[
(
'table_name' | table_id | 'constraint_name' | constraint_id
)
]
[ WITH
{ ALL_CONSTRAINTS | ALL_ERRORMSGS } [ , NO_INFOMSGS ]
]
DBCC CHECKTABLE。檢查組成表或索引視圖的所有頁和結構的完整性。
DBCC CHECKTABLE
(
'table_name' | 'view_name'
[ , NOINDEX
| index_id
| { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD }
]
)
[ WITH
{ [ ALL_ERRORMSGS ]
[ , [ NO_INFOMSGS ] ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
[ , [ PHYSICAL_ONLY ] ]
}
]
DBCC CHECKDB。檢查指定數(shù)據(jù)庫中所有對象的分配、結構和邏輯完整性。
DBCC CHECKDB
[
(
'database_name' | database_id | 0
[ , NOINDEX
| { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
} ]
)
]
[ WITH {
[ ALL_ERRORMSGS ]
[ , [ NO_INFOMSGS ] ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
[ , [ PHYSICAL_ONLY ] ] | [ , [ DATA_PURITY ] ]
}
]
四、DBBCC的信息語句
DBCC SHOW_STATISTICS。顯示指定表上的指定目標的當前分發(fā)統(tǒng)計信息。
DBCC INPUTBUFFER.顯示從客戶端發(fā)送到 Microsoft SQL Server 2005 實例的最后一個語句。DBCC INPUTBUFFER ( session_id [ , request_id ] ) [WITH NO_INFOMSGS ]
DBCC SHOWCONTIG.顯示指定的表的數(shù)據(jù)和索引的碎片信息。
DBCC SHOWCONTIG
[ (
{ 'table_name' | table_id | 'view_name' | view_id }
[ , 'index_name' | index_id ]
)]
[ WITH
{
[ , [ ALL_INDEXES ] ]
[ , [ TABLERESULTS ] ]
[ , [ FAST ] ]
[ , [ ALL_LEVELS ] ]
[ NO_INFOMSGS ]
}
]
DBCC OPENTDBCC INPUTBUFFERRAN 如果在指定數(shù)據(jù)庫內(nèi)存在最早的活動事務和最早的分布式和非分布式復制事務,則顯示與之有關的信息
DBCC OPENTRAN
[
( [ 'database_name' | database_id | 0 ] ) ]
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
DBCC SQLPERF.提供有關如何在所有數(shù)據(jù)庫中使用事務日志空間的統(tǒng)計信息。
DBCC SQLPERF ( LOGSPACE | 'sys.dm_os_latch_stats' , CLEAR | 'sys.dm_os_wait_stats' , CLEAR )
[WITH NO_INFOMSGS ]
DBCC OUTPUTBUFFER.以十六進制和 ASCII 格式返回指定 session_id 的當前輸出緩沖區(qū)。DBCC OUTPUTBUFFER ( session_id [ , request_id ] )
DBCC TRACESTATUS.顯示跟蹤標志的狀態(tài).DBCC TRACESTATUS ( [ [ trace# [ ,...n ] ] [ , ] [ -1 ] ] )
DBCC PROCCACHE.以表格格式顯示有關過程緩存的信息。DBCC PROCCACHE [ WITH NO_INFOMSGS ]
DBCC USEROPTIONS 返回當前連接的活動(設置)的 SET 選項。DBCC USEROPTIONS
五、DBBCC的雜項語句:雜項任務,如啟用跟蹤標志或從內(nèi)存中刪除 DLL
DBCC HELP。返回指定的 DBCC 命令的語法信息。DBCC HELP ( 'dbcc_statement' | @dbcc_statement_var | '?' )[ WITH NO_INFOMSGS ]
DBCC dllname (FREE)。從內(nèi)存中上載指定的擴展存儲過程 DLL。DBCC dllname ( FREE ) [ WITH NO_INFOMSGS ]
DBCC DBREPAIR 。禁用指定的跟蹤標記。DBCC TRACEOFF ( trace# [ ,...n ] [ , -1 ] ) [ WITH NO_INFOMSGS ]
DBCC TRACEON。啟用指定的跟蹤標記。DBCC TRACEON ( trace# [ ,...n ][ , -1 ] ) [ WITH NO_INFOMSGS ]
六、未公開的DBCC
DBCC ERRLOG
初始化SQL錯誤日志
DBCC BUFFER
顯示緩沖區(qū)頭部和頁面信息
DBCC FLUSHPROCINDB
清楚數(shù)據(jù)庫服務器內(nèi)存中的某個數(shù)據(jù)庫存儲過程的緩存內(nèi)容。
DBCC DBINFO
顯示數(shù)據(jù)庫結果信息
DBCC DATABLE
顯示管理數(shù)據(jù)庫的表信息
DBC IND
查看某個索引使用的頁面信息。
DBCC REBULDLOG
重建修復SQL數(shù)據(jù)庫事物日志文件。
DBCC LOG
查看某個數(shù)據(jù)庫的事務日志信息
DBCC PAGE
查看某個數(shù)據(jù)庫數(shù)據(jù)也面信息
DBCC PROCBUF
顯示過程緩沖池的緩沖區(qū)頭和存儲過程。
DBCC PRTIPAGE
查看某個索引頁面的每行指向的頁面號。
DBCC PSS
顯示當前連接到SQLSERVER服務器的進程信息。
DBCC RESOURCE
顯示服務器當前使用的資源情況。
DBCC TAB
查看數(shù)據(jù)頁面的結構。
