賽迪網 > IT技術 數據庫 > SQL Server
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

一些文檔中沒有介紹的SQL Server DBCC命令

發佈時間:2008.07.26 08:41     來源:賽迪網    作者:大海

【賽迪網-IT技術報道】這篇論壇文章(賽迪網技術社區)主要介紹了一些特別有用但文檔中沒有介紹的sql server DBCC命令,詳細內容請參考下文:

以下是一些sql server的DBCC命令,可以在優化 sql server時使用。

◆1.DBCC CacheStats :顯示存在於當前 buffer Cache 中的對象的資訊,例如 :hit rates,編譯的對象和執行計劃

例:

DBCC CACHESTATS

執行結果(縮略)

Object Name Hit Ratio

------------ -------------

Proc 0.86420054765378507

Prepared 0.99988494930394334

Adhoc 0.93237136647793051

ReplProc 0.0

Trigger 0.99843452831887947

Cursor 0.42319205924058612

Exec Cxt 0.65279111666076906

View 0.95740334726893905

Default 0.60895011346896522

UsrTab 0.94985969576133511

SysTab 0.0

Check 0.67021276595744683

Rule 0.0

Summary 0.80056155581812771

從這個命令可以得到一些關鍵的統計資訊:

Hit Ratio:顯示特定對象可以在sql server的緩存中被命中的百分比,這個數值越大,越好

Object Count:顯示特定類型的對象在sql server的緩存中被命中的總數

Avg.Cost:sql server用於測量編譯一個執行計劃所需的時間,以及這個計劃所需的記憶體。根據這個值,可以決定執行計劃是否應該載入在緩存中。

Avg.Pages:測量在緩存中的對象使用8K頁的平均總數

LW Ojbect Count,LW Avg Cost,WL Avg Stay,LW Ave Use:這些列的值表明有多少特定的對象已經被寫進程從緩存總移走。這些數值越低,越好。

◆2.DBCC DROPCLEANBUFFERS:從緩衝池中刪除所有,清除緩衝區。在進行測試時,使用這個命令可以從sql server’s的數據緩存data cache(buffer)清除所有的測試數據,以保證測試的公正性。需要注意的是這個命令只移走乾淨的緩存,不移走臟緩存。由於這個原因,在執行這個命令前,應該先執行CheckPoint,將所有臟的緩存寫入磁片,這樣在運行DBCC RROPCLEANBUFFERS 時,可以保證所有的數據緩存被清理,而不是其中的一部分。

◆3.DBCC ErrorLog :如果很少重起mssqlserver服務,那麼伺服器的日誌會增長得很快,而且打開和查看日誌的速度也會很慢。使用這個命令,可以截斷當前的伺服器日誌,主要是生成一個新的日誌。可以考慮設置一個調度任務,每週執行這個命令自動截斷伺服器日誌。使用存儲過程sp_cycle_errorlog也可以達到同樣的目的。

◆4.DBCC FLUSHPROCINDB:用於清理一個數據庫實例中指定數據庫的存儲過程使用的緩存。數據庫的ID是必輸參數。

在測試時保證以前的存儲過程計劃不會對測試結果造成負面影響,可以使用這個存儲過程。

例子:

DECLARE @intDBID INTEGER SET @intDBID = (SELECT dbid FROM master.dbo.sysdatabases WHERE name = 'database_name')

DBCC FLUSHPROCINDB (@intDBID)

◆5.DBCC FREEPROCCACHE:用於清理所有數據庫的過程高速緩存。例如,釋放過程高速緩存將導致重新編譯某些部分(例如特別 SQL 語句),而不是從高速緩存中對其再使用。

◆6.DBCC MEMORYSTATUS:列出一個詳細分類,分類中顯示sql server緩存如何分配,包括緩存的活動。

◆7.DBCC PAGE:用於查看sql server 中一個數據頁的內容

例:

DBCC PAGE((dbid|dbname),pagenum [,Print Option][,cache][,logical])

參數說明:

Dbid or dbname :可以是數據庫ID或數據庫名。

PageNum:要檢查的頁號

Print option:(可選)列印選項的值是:0,1,2。

0-(缺省)顯示頁的頭資訊

1- 顯示頁的頭資訊,頁中每行的資訊以及頁的偏移表。逐行顯示頁中的行。

2- 與選項1相同,除了不是逐行顯示頁行,而是顯示一個單個的資訊塊。

Cache:(可選)該參數的值是1或0,

0- 命令直接從磁片搜尋頁號而不是檢查頁號是否在高速緩存中DBCC PAGE

1- 若頁在高速緩存中,優先從高速緩存中獲取頁,而不是直接從磁片中獲取頁

Logical:(可選)該參數用於頁號是從虛擬頁中獲取還是邏輯頁中獲取。這個參數的值可以是1或0,

0- 一個虛擬頁號

1- 一個邏輯頁號

◆8.DBCC SQLMGRSTATS:用於產生3個不同的值,這些值用在你想查看高速緩存在ad-hoc和預編譯的TSQL語句中是如何工作的。

例:

DBCC SQLMGRSTATS

結果:

Item Status

------------------------- -----------

Memory Used (8k Pages) 5446

Number CSql Objects 29098

Number False Hits 425490

其中:

Memor Used(8K Pages):若記憶體頁的數量非常大,這也許是個提示:表明一些用戶連接正在預處理許多TSQL語句。

Number CSql Objects:表明已經在高速緩存中的TSQL的語句的總數

Number False Hits:有時,當sql server在匹配在高速緩存中已經存在的TSQL語句時會出現錯誤的命中。在理想的情況下,這個數字應該盡可能地小。

◆9.DBCC SQLPERF():這個命令包括了那些有文檔說明和沒有說明的選項。

DBCC SQLPERF ( LOGSPACE )

提供有關所有數據庫中的事務日誌空間使用情況的統計資訊。具體說明可參考連線幫助。

DBCC SQLPERF(UMSSTATS):提供有關sql server 線程管理情況的統計資訊

運行這個命令,結果如下:

Statistic Value

-------------------------------- ------------------------

Scheduler ID 0.0

num users 17.0

num runnable 0.0

num workers 13.0

idle workers 6.0

work queued 0.0

cntxt switches 76752.0

cntxt switches(idle) 47139.0

Scheduler Switches 0.0

Total Work 54056.0

以下是一些關鍵統計資訊的解釋:

Scheduler ID:每個CPU對應一個調度程式,這是調度程式的序號

Num user:目前在調度隊列中的SQL Server線程數目

Num runnable: 目前正在運行的SQL Server線程數目

Num Workers:線程池的大小

Idle workers:正在空閒的workers。

Cntxt switches:在可執行的線程之間交換上下文的數目

DBCC SQLPERF(WAITSTATS):提供有關sql server read-ahead activity的資訊

DBCC SQLOERF(IOSTATS):提供主要的SQL server讀和寫的資訊

DBCC SQLPERF(RASTATS):提供SQL server read-ahead 活動的資訊

DBCC SQLPERF (THREADS):提供每個sql server線程的I/O,CPU及記憶體使用情況的資訊。

(責任編輯:盧兆林)


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 資訊化市場百家爭鳴 SaaS深陷爭議“泥潭”
· 提高管理水準 "兩棲"CIO應具備的六大能力
· 國產ITIL運維先行者 四大廠商角力BI市場
· 金融行業GSN專題解決方案 企業網解決方案
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統