一些文件中沒有介紹的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及記憶體使用情況的資訊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-586878/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server中的dbcc page命令用法SQLServer
- SQL Server中的dbcc ind命令用法SQLServer
- SQL Server中的未文件化的dbcc命令(適用於SQL Server 2000)SQLServer
- Sql Server系列:DBCC命令SQLServer
- SQL SERVER DBCC命令解釋SQLServer
- SQL Server 中的鎖定介紹SQLServer
- sql server dbcc常用命令使用詳解SQLServer
- SQL Server資料庫管理員必備的DBCC命令SQLServer資料庫
- 得到SQL Server 2008的包括未文件化的所有dbcc命令列表及其語法SQLServer命令列
- SQL Server xtype的介紹SQLServer
- 在SQL Server中,關於with as使用介紹SQLServer
- SQL Server 轉儲的介紹SQLServer
- SQL Server profiler 介紹2SQLServer
- 利用DBCC PAGE檢視SQL Server中的表和索引資料SQLServer索引
- mysql中pager和其它命令的一些小技巧介紹MySql
- [zt] SQL Server管理員必備的DBCC用法SQLServer
- 清除SQL Server日誌的方法介紹SQLServer
- SQL Server 中的一些概念SQLServer
- 介紹一些有趣的MySQL pager命令MySql
- Microsoft SQL Server 2005中的MDX指令碼功能介紹ROSSQLServer指令碼
- SQL Server事務日誌介紹SQLServer
- mysql中SQL的概念介紹MySql
- 跪地求助:! 有沒有中文版介紹Expresso的?Express
- 一些重要 Docker 命令的簡單介紹Docker
- DBCC 命令列表命令列
- Sybase SQL Server體系結構介紹SQLServer
- MS SQL Server 事務日誌介紹SQLServer
- sql server 中的一些實用的sql語句SQLServer
- SQL命令及phpMyAdmin操作介紹SQLPHP
- RHEL中yum命令介紹
- SQL?Server新特性SequenceNumber用法介紹YTZBSQLServer
- SQL Server 內建轉換函式介紹SQLServer函式
- AIX中find命令和xargs命令介紹AI
- MSSQL-SQL SERVER一些使用中的技巧SQLServer
- Sql Server之旅——第五站 確實不得不說的DBCC命令(文後附年會福利)SQLServer
- linux系統中既沒有yum命令也沒有wget命令Linuxwget
- Linux中一些 Sed命令技巧介紹Linux
- 資料倉儲—資料庫—SQL Server 介紹資料庫SQLServer