INF: 使用 DBCC MEMORYSTATUS 」 來監視 SQL Server 記憶體使用量

文章翻譯 文章翻譯
文章編號: 271624 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

DBCC MEMORYSTATUS 命令提供目前的 SQL Server 記憶體狀態的快照集。這個命令的輸出是關聯至記憶體耗用量,SQL Server 的或特定的記憶體不足錯誤 (其中有許多自動列印在錯誤記錄檔中的此輸出) 的問題的疑難排解非常有用的。Microsoft 產品支援服務也可能會要求您執行這個指令特定支援事件期間如果您遇到的錯誤,可能是記憶體不足的狀況相關聯。

此命令旨在成為 Microsoft 產品支援服務的診斷工具。輸出格式以及所提供的詳細資料層級有變更恕服務套件和產品版本之間。DBCC MEMORYSTATUS 命令所提供的功能可能會取代由不同的機制在未來的產品版本和這個命令可能不再運作。沒有其他警告將會進行變更或移除這個命令之前。因此,依賴其行為的應用程式可能會中斷不會發出警告。

DBCC MEMORYSTATUS 輸出包含七個區段。本文將告訴您部分金鑰可以 gleaned 從前四個章節中輸出的資料。剩餘區段牽涉專屬的實作細節,並且不述這份文件。 Microsoft 產品支援服務不會回答任何問題,或提供的特定計數器超過本文中所提供的是什麼意義其他資訊。

其他相關資訊

第一個區段

第一節將說明散發的緩衝集區中的 8 KB 緩衝區。沒有一緩衝區結構,用來緩衝集區中的每個潛在 8 KB 分頁。這包括實體頁面如果地址視窗化擴充功能 (AWE) 已啟用。這個結構包含指出基礎網頁狀態的位元數 (也就是是否修改頁面已固定,則中 IO,等等)。本節將詳細說明具有特定狀態位元的緩衝區數目。
Buffer Distribution              Buffers     
------------------------------   ----------- 
Stolen                           241
Free                             95
Procedures                       89
Inram                            0
Dirty                            16
Kept                             0
I/O                              0
Latched                          18
Other                            880

(9 row(s) affected)
				
Stolen. Stolen 記憶體說明針對排序或為雜湊作業 (查詢工作區記憶體) 或做為泛用的記憶體的存放區的配置用來儲存內部資料結構,例如鎖定、 交易內容和連接資訊那些緩衝區的使用中的緩衝區。延遲寫入器處理序不允許清除緩衝集區用盡 Stolen 緩衝區。

可用空閒 指的是不目前正在使用中的認可緩衝區。 這些都是可用的存放資料,不然他們可能會由其他元件要求,標示為 Stolen

程序程序 是指按住快取的預存程序記憶體的緩衝區。這些緩衝區包含編譯及執行計劃程序並快取的臨機操作計劃。

InramInram 指的是固定的資料表不能從 (固定使用 DBCC PINTABLE 命令或 sp_tableoption 預存程序) 的記憶體中移除分頁。

已變更Dirty 指的是包含有不尚未被清除的變更的資料分頁至磁碟。

保留Kept 指的是暫時在以防止被排清的記憶體中 Pin 的網頁。這個值不會在 SQL Server 2000 中使用。

I/O. I/O 是指等候的暫止的 I/O 作業的緩衝區。在 SQL Server 2000 包括對應或 unmapping 透過 AWE 緩衝區。

latched。latched 的緩衝區記錄連線是讀取的位置,或修改資料列從頁面的緩衝區的數目。閂鎖用來讀取或修改而鎖定用來確保邏輯與交易一致性時,確保在頁面中資料的實體一致性。

其他。這些是不符合任何條件稍早提到的認可的網頁。通常,大部分的符合此準則的緩衝區是雜湊的資料和索引分頁的緩衝區快取中。

第二個區段

第二個區段會列出一些反映整體大小和緩衝集區架構的總計。
Buffer Counts                  Buffers     
------------------------------ ----------- 
Committed                      1339
Target                         6318
Hashed                         914
InternalReservation            120
ExternalReservation            0
Min Free                       16

(6 row(s) affected)
				
認可已交付 Microsoft Windows NT 的緩衝區的總數。已確認 值是目前的 「 大小 」 的緩衝集區。這個值會包含實體如果已啟用 AWE 配置的記憶體。

目標。目標認可計數,或緩衝集區是想的大小。如果 目標 計數大於 已確認 值,與日俱增的緩衝集區。如果 目標 計數小於 已確認 值,壓縮緩衝集區。延遲寫入器處理序會使用這個值,以判斷是否成長或縮小緩衝集區。

雜湊。資料與索引都儲存在緩衝集區的分頁數目。

InternalReservation。緩衝集區會保留為本身的分頁數目。InternalReservation 值是以滿足目前的使用者數目的簡單資料要求所需的分頁最小數目。

ExternalReservation。保留給查詢,將會執行排序或雜湊作業但,有不還被竊的分頁數目。這是用來當做提示,以 「 延遲寫入器將會有大量的記憶體的即將來臨的需求。

可用的最小值。緩衝集區會嘗試保留可用清單上的分頁數目。如果可用清單低於 最小可用 值,緩衝集區會嘗試藉由捨棄舊的網頁,從資料快取或從程序快取的舊程序填入可用的清單。

第三個區段

第三個章節將說明程序快取架構。
Procedure Cache                Value       
------------------------------ ----------- 
TotalProcs                     17
TotalPages                     89
InUsePages                     40

(3 row(s) affected)
				
TotalProcs。程序快取中目前的快取物件的總數。這個值將會符合 syscacheobjects 虛擬資料表中的項目數目。您可以使用效能監視器監視的快取物件--為範例、 觸發程序、 程序和廣告的特殊類型的詳細分析之 SQL Server: 快取管理員物件。

TotalPages。您必須要有儲存所有快取的物件的分頁累積數目。

InUsePages。在程序快取中屬於目前正在執行的程序的分頁數目。這些不能被捨棄。

第四個區段

第四個章節將說明偷來的緩衝區,在伺服器中的主要元件群組之間的相對的散發。SQL Server 會實作它自己記憶體管理員,使用小型配置緩衝區集區頁面並,回頭作業系統常式只會大於大約 8 KB 的配置。這些較大的配置在緩衝區集區外,它們通常稱為配置從 MemToLeave 區域。這個區域的大小可以控制使用 -g 命令列選項。

通常,大部分的記憶體配置來自 MemToLeave 是從正在執行同處理序例如 COM 物件、 擴充的預存程序和連結的伺服器的非-SQL Server 記憶體消費者。 DBCC MEMORYSTATUS 中報告作業系統相關的值只反映 MemToLeave 會直接 SQL 伺服器所做的配置。 在 MemToLeave 從這些其他元件的發生的任何其他配置不會包含在內,因為 SQL Server 具有不知道這些記憶體要求。
Dynamic Memory Manager         Buffers     
------------------------------ ----------- 
Stolen                         330
OS Reserved                    152
OS Committed                   138
OS In Use                      129
General                        322
QueryPlan                      87
Optimizer                      0
Utilities                      10
Connection                     40

(9 row(s) affected)
				
遭竊。從緩衝集區偷走由五個記憶體管理員 (一般,查詢計劃的最佳化程式,公用程式連線) 的緩衝區的總數。這些頁面用來服務小於 8 KB 的記憶體配置。

保留的 OS。保留來自作業系統處理大於大約 8 KB 的配置要求的分頁數目。

OS 認可。保留的區域中已交付的記憶體數量。因為緩衝區是先保留,然後認可,OS 認可 的值應該小於或等於 OS 保留 的值。當不再使用時,記憶體的部份可能 decommitted。

附註在 SQL Server 2000 (也就在 SQL Server 2000 Service Pack 3 中修正) 會造成這個值不可以精確地維護沒有 Bug,因此它可能落在有效範圍之外。

在使用的 OSOS 認可 的緩衝區的目前備份未處理的記憶體配置。

一般。一般記憶體消費者在該伺服器包括剖析或正規化、 鎖定、 交易內容內部資料結構描述在記憶體中繼資料的資料表和索引,和其他人所使用的記憶體。這個值是 8 KB 的緩衝區的總數。其中有些可能會遭竊的緩衝區從緩衝區] 集區,而且其他人可能來自 MemToLeave

QueryPlan。用來儲存查詢計劃 transiently 或快取中的記憶體。這個值是 8 KB 的緩衝區的總數。其中有些可能會遭竊的緩衝區從緩衝區] 集區,而且其他人可能來自 MemToLeave

最佳化器。由查詢最佳化器使用中的記憶體。這個值是 8 KB 的緩衝區的總數。其中有些可能會遭竊的緩衝區從緩衝區] 集區,而且其他人可能來自 MemToLeave

公用程式。 使用中的各種公用程式常式,如 BCP、 記錄檔管理員、 平行查詢記憶體 :: fn_trace_gettable,和其他人。這個值是 8 KB 的緩衝區的總數。其中有些可能會遭竊的緩衝區從緩衝區] 集區,而且其他人可能來自 MemToLeave

連線。 用來儲存保有每個使用者連線的 [連線] 內容的資料結構的記憶體。這也包括記憶體供網路傳送和接收連接相關聯的緩衝區。 這個值是 8 KB 的緩衝區的總數。這些部份可能會在緩衝區集區和其他遭竊可能來自 MemToLeave 的緩衝區。

?考

SQL Server 叢書線上
天王為 Kalen。內部 Microsoft SQL Server 2000 Microsoft 按 2000年。

屬性

文章編號: 271624 - 上次校閱: 2003年11月12日 - 版次: 4.3
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
關鍵字:?
kbmt kbinfo KB271624 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:271624
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com