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 1204、1205、1206,檢查ERRORLOG裡面的輸出,和分析SQLTRACE的執行上下文判斷死鎖問題的來由。
--TRACEON函數的第三個參數設定為-1,表示不單單針對目前connection,
--而是針對所有包括未來建立的connection。這樣,才夠完全,否則隻是監視目前已經建立的資料庫連接配接了。
--執行下面的話可以把死鎖記錄到Errorlog中:
dbcc traceon (1204, 3605, -1)
go
dbcc tracestatus(-1)
--說明:
--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
--檢視資料頁面的結構