DBCC CHECKDB 檢查數據庫
dbcc printable 將經常使用的小表放入內存
DBCC SHRINKDATABASE 見[url]http://xu20cn.blog.51cto.com/274020/74077[/url]
在小規模環境下,DBCC INDEXDEFRAG的結果比DBCC DBREINDEX要好一些。不過,在大多數狀況下,徹底重建索引應該具備更好的性能。
當DBCC INDEXDEFRAG運行在一個動態的系統上,即數據保持在線更新,DBCC INDEXDEFRAG會跳過那些被鎖住的頁。所以DBCC INDEXDEFRAG也許就沒法徹底消除碎片。要衡量DBCC INDEXDEFRAG發揮了多大做用,能夠在DBCC INDEXDEFRAG後馬上運行DBCC SHOWCONTIG。
DBCC DBREINDEX徹底重建索引
--1
dbcc trraceon DBCC TRACEOFF
--對於數據庫死鎖,一般能夠經過TRACE FLAG 120四、120五、1206,檢查ERRORLOG裏面的輸出,和分析SQLTRACE的執行上下文判斷死鎖問題的來由。
--TRACEON函數的第三個參數設置爲-1,表示不僅僅針對當前connection,
--而是針對全部包括將來創建的connection。這樣,纔夠徹底,不然只是監視當前已經創建的數據庫鏈接了。
--執行下面的話能夠把死鎖記錄到Errorlog中:
dbcc traceon (1204, 3605, -1)
go
dbcc tracestatus(-1)
go
--說明:
--260:打印關於擴展存儲過程動態連接庫的版本信息
--444:中止auto-parameterization
--1200:輸出鎖信息
--1204:傳回參與死鎖的SQL SERVER相關程序之運行數據
--1211:中止lock escalation(鎖升級)
--1252:顯示動態選擇鎖的相關信息
--2528:經過 DBCC CHECKDB、DBCC CHECKFILEGROUP 和 DBCC CHECKTABLE 禁用對象的並行檢查。
--默認狀況下,並行度由查詢處理器自動肯定。最大並行度的配置方式與並行查詢相同。
--有關更多信息,請參見 max degree of parallelism 選項。
-- 一般狀況下,應將並行 DBCC 保留爲啓用狀態。執行 DBCC CHECKDB 時,
-- 查詢處理器從新評估和自動調整並行度,並檢查每一個表或一批表。
--有時,檢查可能在服務器處於實際空閒狀態時進行。若是管理員知道在檢查結束前負荷將加大,
--可能但願手工減少或禁用並行度。
-- 可是,禁用並行檢查會致使數據庫的整體性能下降。下降並行度將增長必須掃描的事務日誌量。
--這反過來增長了對 tempdb 空間的需求,並致使 dbcc 完成檢查所需的時間非線性增長。
--若是運行 DBCC 時啓用了 TABLOCK 功能並關閉了並行度,則表可能被鎖定更長時間。
--3205:默認狀況下,若是磁帶驅動器支持硬件壓縮,則 DUMP 或 BACKUP 語句會使用該功能。
-- 利用此跟蹤標記,能夠禁用磁帶驅動程序的硬件壓縮。
-- 本項在要與不支持壓縮的其它站點或磁帶驅動器交換磁帶時有用。
--3604:將trace結果輸出到前端
--3605:要求DBCC的輸出放到SQL server ERROR LOG
--8602:中止索引提示功能
--8722:中止join group等最優化提示功能
--8755:中止鎖提示功能
--8780:中止最優化超時配置,強制作完整的最優化動做
------------------------------------------------------
--2
DBCC page
dbcc traceon(3604)
dbcc page(northwind,1,100,1)
/*查詢northwind 的數據的第101個頁面的信息*/
/*DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
?
具體參數描述以下:
dbid: 包含頁面的數據庫ID
dbname:包含頁面的數據庫的名稱
filenum:包含頁面的文件編號
pagenum:文件內的頁面
printopt:可選的輸出選項;選用其中一個值:
0:默認值,輸出緩衝區的標題和頁面標題
1:輸出緩衝區的標題、頁面標題(分別輸出每一行),以及行偏移量表
2:輸出緩衝區的標題、頁面標題(總體輸出頁面),以及行偏移量表
3:輸出緩衝區的標題、頁面標題(分別輸出每一行),以及行偏移量表;每一行後跟分別列出的它的列值
*/
------------------------------------------------------
--3
DBCC checkalloc
DBCC checkalloc(northwind)
/*檢查指定數據庫的系統表內和表間的一致性
checkalloc是檢查指定數據庫,看其全部正確分配的頁和還沒有分配的頁的狀況。
若未指定數據庫名,則checkalloc檢查當前數據庫。checkalloc會返回已分配的和使用的空間數量。
checkalloc的缺省模式爲nofix,要使用fix選項,必須把數據庫置於單用戶模式。
*/
-----------------------------------------------------
--
4 DBCC checkcatalog
DBCC checkcatalog(northwind)
/*
檢查批定數據庫的系統表內和系統表間的一致性
*/
-----------------------------------------------------
--5
DBCC checkconstraints
DBCC checkconstraints(products)
/*
檢查指定表上的指定約束或全部約束的完整性
DBCC CHECKCONSTRAINTS
[('table_name'|'constraint_name'
)]
[WITH {ALL_ERRORMSGS|ALL_CONSTRAINTS}]
DBCC CHECKCONSTRAINTS在某個數據庫中,檢測某些特定的約束或者所有約束的一致性。
DBCC CHECKCONSTRAINTS老是在當前數據庫的上下文環境中執行。
注意,DBCC CHECKCONSTRAINTS並不進行磁盤或者文件級別的一致性檢測;
它只是確保外鍵定義的一致性,同時檢測約束——僅僅是確認數據有效。
若是你但願檢測磁盤上表和索引的一致性,
你應該執行DBCC CHECKDB或者在全部的表上執行DBCC CHECKALLOC和 DBCC CHECKTABLE的組合。
*/
------------------------------------------------------
--6
DBCC checkdb
DBCC checkdb
/*
檢查數據庫中的全部對象的分配和結構完整性
checkdb [('database_name'[, NOINDEX | REPAIR])]
[WITH NO_INFOMSGS[, ALL_ERRORMSGS][, PHYSICAL_ONLY]
[, ESTIMATEONLY][, TABLOCK]]
*/
-----------------------------------------------------
--7
DBCC cleantable
DBCC cleantable
/*
回收alter table drop column語句 刪除可變長度列或text列後的存儲空間
cleantable ('database_name'|database_id, 'table_name'|table_id, [batch_size])
*/
-----------------------------------------------------
--8
DBCC dbreindex
DBCC dbreindex
/*
重建指定數據庫的一個或多個索引
dbreindex ('table_name' [, index_name [, fillfactor ]]) [WITH NO_INFOMSGS]
*/
-----------------------------------------------------
--9
DBCC indexdefrag
DBCC indexdefrag
/*
對錶或視圖上的索引和非彙集索引進行碎片整理
indexdefrag ({dbid | dbname | 0}, {tableid | tablename}, {indid | indname})
*/
--------------------------------------------------------
--10
DBCC pintable/DBCC unpintable
--將表數據駐留在內存中或撤銷駐留 在內存中的數據
--pintable (database_id, table_id)
----------------------------------------------------------
--11
DBCC shrinkdatabase
--收縮指定數據庫的數據文件和日誌文件大小
--shrinkdatabase ({dbid | 'dbname'}, [freespace_percentage [, {NOTRUNCATE | TRUNCATEONLY}]])
----------------------------------------------------------
--12
DBCC shrinkfile
--收縮相關數據庫的指定數據文件和日誌文件大小
--shrinkfile ({fileid | 'filename'}, [compress_size [, {NOTRUNCATE | TRUNCATEONLY | EMPTYFILE}]])
------------------------------------------------------------
--13
DBCC dllname(free)
--在內存中制裁指定的擴展想念過程動態連接庫(DLL)
sp_helpextended proc
--查詢當前內存中的擴展存儲過程動態連接庫
-------------------------------------------------------------
--14
DBCC dropcleanbuffers
--從緩衝池中刪除全部緩衝區
/*
使用 DBCC DROPCLEANBUFFERS 測試帶有冷高速緩存的查詢,而不用關閉和從新啓動服務器
*/
---------------------------------------------------------------
--15
DBCC freeproccache
--從過程緩衝區刪除全部元素
--清理全部數據庫的過程高速緩存
-----------------------------------------------------------------
--16
DBCC inputButter
--顯示從客戶機發送到服務器的最後一個語句
-------------------------------------------------------------
--17
DBCC opentran
--查詢某個數據庫執行時間最久的事務,由哪一個程序擁有
----------------------------------------------------------------
--18
DBCC show_statistics
--顯示指定表上的指定目前的當前分佈統計信息
------------------------------------------------------------------
--19
DBCC showcontig
--顯示指定表的數據和索引的碎片信息
-----------------------------------------------------------------
--20
DBCC sqlperf
--可用參數logspace,iostats,threads
--返回多種有用的統計信息
------------------------------------------------------------------
--21
DBCC cachestats
--顯示SQL SERVER內存的統計信息
-----------------------------------------------------------------
--22
DBCC cursorstats
--顯示SQL SERVER遊標的統計信息
------------------------------------------------------------------
--23
DBCC sqlmgrstats
--顯示緩衝中先讀和預先準備的SQL語句
------------------------------------------------------------
--24
DBCC errlog
--初始化SQL SERVER錯誤日誌文件
----------------------------------------------------------
--25
DBCC flushprocindb
--清除SQL SERVER服務器內存中某個數據庫的存儲過程緩存內容
----------------------------------------------------------
--26
DBCC Buffer
--顯示緩衝區的善信息和頁面信息
--------------------------------------------------------
--27
DBCC DBinfo
--顯示數據庫結構信息
------------------------------------------------------------
--28
DBCC DBtable
--顯示管理數據的表信息
-----------------------------------------------------------
--29
DBCC IND
--查看某個索引使用的頁面信息
-------------------------------------------------------------
--30
DBCC REbuild_log
--重建SQL SERVER事務日誌文件
------------------------------------------------------------
--31
DBCC log
--查看某個數據庫使用的事務日誌信息
-----------------------------------------------------------
--32
DBCC procbuf
--顯示過程緩衝池中的緩衝區頭和存儲過程頭
------------------------------------------------------------
--33
DBCC prtipage
--查看某個索引頁面的每行指向的頁面號
------------------------------------------------------------
--34
DBCC pss
--顯示當前鏈接到SQL SERVER的進程信息
-----------------------------------------------------------
--35
DBCC resource
--顯示服務器當前使用的資源狀況
------------------------------------------------------------
--36
DBCC tab --查看數據頁面的結構