您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)SQL Server虛擬內(nèi)存不足如何解決,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
SQLServer虛擬內(nèi)存不足有哪些現(xiàn)象
癥狀:在具有2GB或更多RAM的計算機上,除了256MB(SQLServer7.0)或384MB(SQLServer2000)虛擬地址空間之外,SQLServer在啟動過程中保留剩下的所有虛擬地址空間以供緩沖池使用。另外,為了存儲數(shù)據(jù)和過程緩存,SQLServer使用緩沖池內(nèi)存為來自SQLServer進程的大多數(shù)小于8KB的其他內(nèi)存請求提供服務。剩下的未保留內(nèi)存準備用于不能從緩沖池得到服務的其他分配。這些分配包括、但不限于以下各項:
SQLServer創(chuàng)建的所有線程的堆棧和關(guān)聯(lián)的線程環(huán)境塊。在SQLServer創(chuàng)建了所有255個工作線程之后,這大約為140MB。由在SQLServer地址空間(根據(jù)具體系統(tǒng)而有所不同)中運行的其他DLL或進程進行的分配,如:?任何鏈接的服務器中的OLEDB提供程序。通過使用sp_OA系統(tǒng)存儲過程或擴展存儲過程加載的COM對象。加載到地址空間中的任何映像(.exe或.dll),這些映像通常使用20到25MB,但是假如您使用鏈接的服務器、sp_OA或擴展存儲過程,則這些映像可能使用更多的空間。進程堆和SQLServer可能創(chuàng)建的任何其他堆。在啟動過程中,此空間通常為10MB,但是假如您使用鏈接的服務器、sp_OA或擴展存儲過程,則此空間可能更多。來自SQLServer進程的大于8KB的分配,例如較大查詢計劃、網(wǎng)絡(luò)數(shù)據(jù)包大小配置選項接近于8KB時發(fā)送和接收緩沖區(qū)等情況所需要的分配。要查看此數(shù)字,請查找在DBCCMEMORYSTATUS中報告的OSReserved值,該值是作為8KB頁的數(shù)目報告的。通常,該值為5MB。跟蹤緩沖池中每個緩沖區(qū)狀態(tài)信息的數(shù)組。該值通常約為20MB,除非SQLServer運行時啟用了地址窗口化擴展插件(AWE),在這種情況下,該值將會顯著提高。
在擁有大量數(shù)據(jù)庫的系統(tǒng)上,日志格式化所需的64KB分配可能會占用所有剩余的虛擬內(nèi)存。這之后的分配將失敗,導致本文的“癥狀”一節(jié)中列出的一個或多個錯誤。
通過使用-g啟動參數(shù),您可以指示SQLServer保留附加的虛擬內(nèi)存可用,以便這些與日志相關(guān)的分配和其他正常分配加在一起也不會用完虛擬地址空間。
如何解決SQLServer虛擬內(nèi)存不足
下表根據(jù)數(shù)據(jù)庫的數(shù)目和服務器版本列出-g值的一些建議初始值:DatabasesSQLServer7.0SQLServer2000
250-g134N/A
500-g185N/A
750-g237N/A
1000-g288-g288
1250-g340-g340
1500-g392-g392
此表是使用列出的典型值進行計算的,并且此計算是基于沒有使用鏈接的服務器活動、sp_OA或擴展存儲過程這一假設(shè)的。它還假設(shè)您沒有使用AWE和SQL事件探查器。出現(xiàn)以上任意一種情況都需要您增加-g的值。
假如服務器上數(shù)據(jù)庫的數(shù)目超過此數(shù)目,Microsoft建議您在運行該服務器之前進行慎重的考慮,因為系統(tǒng)上具有如此數(shù)目的數(shù)據(jù)庫所需的系統(tǒng)開銷將占用緩沖池中的大量虛擬內(nèi)存,從而可能導致系統(tǒng)整體性能下降。
以上就是SQL Server虛擬內(nèi)存不足如何解決,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。