DBCC語句歸類

2021-04-22 23:22:45 字數 4110 閱讀 5783

dbcc是sql server提供的一組控制台命令,功能很強大,掌握一些必要的語句,對運算元據庫有不少幫助,所以決定整理一下,發現已有不少類似的整理,減少了不少工作,歸類如下:

一、dbcc 幫助類命令

* dbcc help('?')

查詢所有的dbcc命令

* dbcc help('命令')

查詢指定的dbcc命令的語法說明

* dbcc useroptions

返回當前連線的活動(設定)的set選項

二、dbcc 檢查驗證類命令

* dbcc checkallog ('資料庫名稱')

檢查指定資料庫的磁碟空間分配結構的一致性

* dbcc checkcatalog ('資料庫名稱')

檢查指定資料庫的系統表內和系統表間的一致性

* dbcc checkconstaints ('tablename')

檢查指定表上的指定約束或所有約束的完整性

* dbcc checkdb

檢查資料庫中的所有物件的分配和結構完整性

* dbcc checkfilegroup

檢查指定檔案組中所有表在當前資料庫中的分配和結構完整性

* dbcc checktable

檢查指定表或索引檢視的資料、索引及test、ntest和image頁的完整性

* dbcc checkident

檢查指定的當前標識值

* dbcc sqlperf(umsstats) undocumented in bol

可以用來檢查是否cpu使用達到瓶頸

最關鍵的乙個參考資料num runnable,表明當前有多少個執行緒再等待執行

如果大於等於2,考慮cpu達到瓶頸

三、dbcc 維護類命令

* dbcc cleantable ('db_name','table_name')

**alter table drop column語句刪除可變長度列或text

* dbcc dbreindex

重建指定資料庫的乙個或多個索引

* dbcc indexdefrag

對錶或檢視上的索引和非聚集索引進行碎片整理

* dbcc pintable (db_id,object_id)

將表資料駐留在記憶體中

檢視哪些表駐留在記憶體的方法是:

select objectproperty(object_id('tablename'),『tableispinned')

* dbcc unpintable (db_id,object_id)

撤消駐留在記憶體中的表

* dbcc shrinkdatabase(db_id,int)

收縮指定資料庫的資料檔案和日誌檔案大小

* dbcc shrinkfile(file_name,int)

收縮相關資料庫的指定資料檔案和日誌檔案大小

四、dbcc 效能調節命令

* dbcc dllname(free)

sp_helpextendedproc 檢視載入的擴充套件proc

在記憶體中解除安裝指定的擴充套件過程動態鏈結庫(dll)

* dbcc dropcleanbuffers

從緩衝池中刪除所有緩衝區

* dbcc freeproccache

從過程緩衝區刪除所有元素

* dbcc inputbuffer

顯示從客戶機傳送到伺服器的最後乙個語句

* dbcc opentran (db_name)

查詢某個資料庫執行時間最久的事務,由哪個程式擁有

* dbcc show_statistics

顯示指定表上的指定目標的當前分布統計資訊

* dbcc showcontig

顯示指定表的資料和索引的碎片資訊

* dbcc sqlperf

(logspace) 檢視各個db的日誌情況

(iostats) 檢視io情況

(threads) 檢視執行緒消耗情況

返回多種有用的統計資訊

* dbcc cachestats

顯示sql server 2000記憶體的統計資訊

* dbcc cursorstats

顯示sql server 2000游標的統計資訊

* dbcc memorystats

顯示sql server 2000記憶體是如何細分的

* dbcc sqlmgrstats

顯示緩衝中先讀和預讀準備的sql語句

五、dbcc 未公開的命令

* dbcc errlog

初始化sql server 2000的錯誤日誌檔案

* dbcc flushprocindb (db_id)

清除sql server 2000伺服器記憶體中的某個資料庫的儲存過程快取內容

* dbcc buffer (db_name,object_name,int(緩衝區個數))

顯示緩衝區的頭部資訊和頁面資訊

* dbcc dbinfo (db_name)

顯示資料庫的結構資訊

* dbcc dbtable

顯示管理資料的表(資料字典)資訊

* dbcc ind (db_name,table_name,index_id)

檢視某個索引使用的頁面資訊

* dbcc rebuildlog

重建sql server 2000事務日誌檔案

* dbcc log (db_name,3)  (-1--4)

檢視某個資料庫使用的事物日誌資訊

* dbcc page

檢視某個資料庫資料頁面資訊

* dbcc procbuf

顯示過程緩衝池中的緩衝區頭和儲存過程頭

* dbcc prtipage

檢視某個索引頁面的每行指向的頁面號

* dbcc pss (user,spid,1)

顯示當前連線到sql server 2000伺服器的程序資訊

* dbcc resource

顯示伺服器當前使用的資源情況

* dbcc tab (db_id,object_id)

顯示資料頁面的結構

六、dbcc跟蹤標記

跟蹤標記用於臨時設定伺服器的特定特徵或關閉特定行為,常用於診斷效能問題或除錯儲存過程或複雜的計算機系統

* dbcc traceon    (3604)

開啟跟蹤標記

* dbcc traceoff

關閉跟蹤標記

* dbcc tracestats

檢視跟蹤標記狀態

七、使用 dbcc 結果集輸出

許多 dbcc 命令可以產生**格式的輸出(使用 with tableresults 選項)。該資訊可裝載到表中以便將來使用。以下顯示乙個示例指令碼:

create table dbccresult (

dbccflag int,

result int

) insert into dbccresult

exec ('dbcc tracestatus (-1) with no_infomsgs')

select *

from dbccresult  

八、官方使用dbcc的建議

1、在系統使用率較低時執行 checkdb。

2、請確保未同時執行其它磁碟 i/o 操作,例如磁碟備份。

3、將tempdb放到單獨的磁碟系統或快速磁碟子系統中。

4、允許tempdb在驅動器上有足夠的擴充套件空間。 使用帶有 estimate only 的 dbcc

估計tempdb將需要多少空間。

5、避免執行占用大量 cpu 的查詢或批處理作業。

6、在 dbcc 命令執行時,減少活動事務。

7、使用 no_infomsgs 選項顯著減少處理和tempdb的使用。

8、考慮使用帶有 physical_only 選項的 dbcc checkdb 來檢查頁和記錄首部

的物理結構。當硬體導致的錯誤被置疑時,這個操作將執行快速檢查。

DBCC了解頁面結構

dbcc traceon 3604 將trace結果輸出到前端 dbcc page kk 1,95344,1 用於查詢乙個頁面的內部儲存結構資訊 dbcc page filenum,pagenum printopt 具體引數描述如下 dbid 包含頁面的資料庫id dbname 包含頁面的資料庫的名...

Mysql 命令歸類

連線mysql mysql uroot padmin hlocalhost 連線mysqladmin命令列客戶端程式 mysqladmin uroot padmin hlocalhost 啟動mysql mysqld 關閉 mysqladmin uroot padmin hlocalhost shu...

排序演算法歸類

1.直接插入排序 具體做法是 在插入第i個記錄時,r1,r2,ri 1已經排好序了,這時將ri的關鍵字ki 1,ki 2。進行比較,從而找到應該插入的位置並將ri插入,插入位置和他後面的記錄向後移。include include using namespace std int a 123456 in...