SQL Server數據庫中能儲存大量的數據,這就要求SQL Server數據庫的內存足夠大,虛擬內存在SQL Server數據庫中也發揮著很大的作用,那麼如果虛擬內存不足,大家可以試試下文中為大家介紹的方法,幫助大家解決虛擬內存不足的困擾。
症狀:在具有 2 GB 或更多 RAM 的計算機上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虛擬地址空間之外,SQL Server 在啟動過程中保留剩下的所有虛擬地址空間以供緩沖池使用。另外,為了存儲數據和過程緩存,SQL Server 使用緩沖池內存為來自 SQL Server 進程的大多數小於 8 KB 的其他內存請求提供服務。剩下的未保留內存准備用於不能從緩沖池得到服務的其他分配。這些分配包括、但不限於以下各項:
在擁有大量數據庫的系統上,日志格式化所需的 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 建議您在運行該服務器之前進行慎重的考慮,因為系統上具有如此數目的數據庫所需的系統開銷將占用緩沖池中的大量虛擬內存,從而可能導致系統整體性能下降。
上文中的方法能夠很輕松的幫助大家解決SQL Server中虛擬內存不足的問題,虛擬內存大了運行速度自然就上去了,大家的工作效率也就自然而然的提高了,大家何樂而不為啊?