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