SQL Server出現虛擬記憶體不足的解決方法
症狀
在具有 2 GB 或更多 RAM 的計算機上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虛擬地址空間之外,SQL Server 在啟動過程中保留剩下的所有虛擬地址空間以供緩衝池使用。另外,為了儲存資料和過程快取,SQL Server 使用緩衝池記憶體為來自 SQL Server 程式的大多數小於 8 KB 的其他記憶體請求提供服務。剩下的未保留記憶體準備用於不能從緩衝池得到服務的其他分配。這些分配包括、但不限於以下各項:
•SQL Server 建立的所有執行緒的堆疊和關聯的執行緒環境塊。在 SQL Server 建立了所有 255 個工作執行緒之後,這大約為 140 MB。
•由在 SQL Server 地址空間(根據具體系統而有所不同)中執行的其他 DLL 或程式進行的分配,如: •任何連結的伺服器中的 OLE DB 提供程式。
•通過使用 sp_OA 系統儲存過程或擴充套件儲存過程載入的 COM 物件。
•載入到地址空間中的任何映像(.exe 或 .dll),這些映像通常使用 20 到 25 MB,但是如果您使用連結的伺服器、sp_OA 或擴充套件儲存過程,則這些映像可能使用更多的空間。
•程式堆和 SQL Server 可能建立的任何其他堆。在啟動過程中,此空間通常為 10 MB,但是如果您使用連結的伺服器、sp_OA 或擴充套件儲存過程,則此空間可能更多。
•來自 SQL Server 程式的大於 8 KB 的分配,例如較大查詢計劃、網路資料包大小配置選項接近於 8 KB 時傳送和接收緩衝區等情況所需要的分配。要檢視此數字,請查詢在 DBCC MEMORYSTATUS 中報告的 OS Reserved 值,該值是作為 8 KB 頁的數目報告的。通常,該值為 5 MB。
•跟蹤緩衝池中每個緩衝區狀態資訊的陣列。該值通常約為 20 MB,除非 SQL Server 執行時啟用了地址視窗化擴充套件外掛 (AWE),在這種情況下,該值將會顯著提高。
在擁有大量資料庫的系統上,日誌格式化所需的 64 KB 分配可能會佔用所有剩餘的虛擬記憶體。這之後的分配將失敗,導致本文的“症狀”一節中列出的一個或多個錯誤。
通過使用 -g 啟動引數,您可以指示 SQL Server 保留附加的虛擬記憶體可用,以便這些與日誌相關的分配和其他正常分配加在一起也不會用完虛擬地址空間。
下表根據資料庫的數目和伺服器版本列出 -g 值的一些建議初始值: DatabasesSQL Server 7.0SQL Server 2000
250-g134N/A
500-g185N/A
750-g237N/A
1000-g288-g288
1250-g340-g340
1500-g392-g392
此表是使用列出的典型值進行計算的,並且此計算是基於沒有使用連結的伺服器活動、sp_OA 或擴充套件儲存過程這一假設的。它還假設您沒有使用 AWE 和 SQL 事件探查器。出現以上任意一種情況都需要您增加 -g 的值。
如果伺服器上資料庫的數目超過此數目,Microsoft 建議您在執行該伺服器之前進行慎重的考慮,因為系統上具有如此數目的資料庫所需的系統開銷將佔用緩衝池中的大量虛擬記憶體,從而可能導致系統整體效能下降。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-621553/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 虛擬記憶體有什麼用 虛擬記憶體不足怎麼解決記憶體
- 電腦記憶體不足怎麼辦? 虛擬記憶體不足的解決辦法記憶體
- Win8關閉遊戲時提示虛擬記憶體不足的解決方法遊戲記憶體
- windows下提示虛擬記憶體不足如何解決?Windows記憶體
- 解決ORACLE共享記憶體不足的方法Oracle記憶體
- win10系統出現視訊記憶體不足的解決方法Win10記憶體
- Sql Server實體記憶體及虛擬記憶體設定的總結SQLServer記憶體
- windows系統提示虛擬記憶體不足的原因Windows記憶體
- 提示“虛擬記憶體”不足的怎麼辦(轉)記憶體
- SQLServer因為OS虛擬記憶體不足而hang住異常解決-鎖定記憶體頁 (LPIM)SQLServer記憶體
- vertica記憶體不足的解決方案記憶體
- 解決 SQL Server 耗盡記憶體的情況SQLServer記憶體
- SQL Server資料庫佔用記憶體過多的解決方法SQLServer資料庫記憶體
- mongodb記憶體不足怎麼解決?MongoDB記憶體
- win8虛擬記憶體不足怎麼設定?記憶體
- 完美解決虛擬機器佔用硬碟越來越大、刪除快照出現記憶體不足錯誤虛擬機硬碟記憶體
- Linux增加虛擬記憶體方法Linux記憶體
- 虛擬記憶體系統——瞭解記憶體的工作原理記憶體
- 實體記憶體和虛擬記憶體記憶體
- w10老顯示記憶體不足怎麼解決 w10記憶體總是顯示記憶體不足處理方法記憶體
- 虛擬記憶體筆記記憶體筆記
- win10記憶體不足怎麼解決_win10記憶體不足怎麼辦Win10記憶體
- 聊聊虛擬記憶體記憶體
- win10怎麼刪除虛擬記憶體 刪除win10虛擬記憶體的方法Win10記憶體
- win10電腦玩荒野大鏢客2遊戲提示虛擬記憶體不足怎麼解決Win10遊戲記憶體
- win10虛擬記憶體怎麼設定 win10虛擬記憶體設定方法Win10記憶體
- win10 虛擬記憶體怎麼設定好 win10 虛擬記憶體設定方法Win10記憶體
- Win10設定虛擬記憶體方法 Win10怎麼設定虛擬記憶體Win10記憶體
- Excel 2003記憶體或磁碟空間不足的解決方法Excel記憶體
- 教你如何擴大電腦的虛擬記憶體? 什麼是虛擬記憶體?記憶體
- 記憶體虛擬化技術,具體的實現方法有哪兩種?記憶體
- windows10怎麼關閉虛擬記憶體_win10關閉c盤虛擬記憶體的方法Windows記憶體Win10
- win10電腦虛擬記憶體怎麼設定 win10虛擬記憶體設定的方法Win10記憶體
- XP系統出現記憶體讀寫錯誤解決方法記憶體
- Linux 虛擬記憶體Linux記憶體
- 5.虛擬記憶體記憶體
- 虛擬記憶體到實體記憶體(32位)記憶體
- 【Java基礎】實體記憶體&虛擬記憶體Java記憶體