程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MSSQL數據庫占用內存過大造成服務器死機問題的解決方法

MSSQL數據庫占用內存過大造成服務器死機問題的解決方法

編輯:關於SqlServer

      使用MSSQL的站長朋友都會被MSSQL數據庫吃內存的能力佩服得五體投地,一個小小的網站,運行若干天之後,MSSQL就會把服務器上所有的內存都吃光,此時你不得不重新啟動一下服務器或MSSQL來釋放內存,有人認為是MSSQL有內存洩露問題,其實不然,微軟給我們了明確說明:

      在您啟動 SQL Server 之後,SQL Server 內存使用量將會持續穩定上升,即使當服務器上活動很少時也不會下降。另外,任務管理器和性能監視器將顯示計算機上可用的物理內存穩定下降,直到可用內存降到 4 至 10 MB 為止。

      僅僅出現這種狀態不表示內存洩漏。此行為是正常的,並且是 SQL Server 緩沖池的預期行為。

      默認情況下,SQL Server 根據操作系統報告的物理內存加載動態增大和收縮其緩沖池(緩存)的大小。只要有足夠的內存可用於防止內存頁面交換(在 4 至 10 MB 之間),SQL Server 緩沖池就會繼續增大。像在與 SQL Server 分配內存位於相同計算機上的其他進程一樣,SQL Server 緩沖區管理器將在需要的時候釋放內存。SQL Server 每秒可以釋放和獲取幾兆字節的內存,從而使它可以快速適應內存分配變化。

      更多信息

      您可以通過服務器內存最小值和服務器內存最大值配置選項設置 SQL Server 數據庫引擎使用的內存(緩沖池)量的上下限。在設置服務器內存最小值和服務器內存最大值選項之前,請查閱以下 Microsoft 知識庫文章中標題為"內存"一節中的參考信息:

      319942 HOW TO:Determine Proper SQL Server Configuration Settings(確定正確的 SQL Server 配置設置)

      請注意,服務器內存最大值選項只限制 SQL Server 緩沖池的大小。服務器內存最大值選項不限制剩余的未保留內存區域,SQL Server 准備將該區域分配給其他組件,例如擴展存儲過程、COM 對象、以及非共享 DLL、EXE 和 MAPI 組件。由於前面的分配,SQL Server 專用字節超過服務器內存最大值配置是很正常的。有關此未保留內存區域中分配的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

      316749 PRB:在使用大量數據庫時可能沒有足夠的虛擬內存

      參考

      SQL Server 聯機圖書;主題:"服務器內存最小值和最大值的影響";"內存體系結構";"服務器內存選項";"SQL Server 內存池"

      下面我們就來實戰如何限制MSSQL內存使用:

      第一步:打開企業管理雙擊進入要修改的MSSQL.

      第二步:在左側MSSQL上點擊右鍵,選擇屬性,彈出SQL Server屬性(配置)對話框

      第三步:點擊內存選項卡.

      在這裡,你會看到MSSQL默認設置為使用最大內存,也就是你所有的內存,根據你的需要,設置它的最大值吧.

      第五步:設置完畢,關閉MSSQL服務再重啟,配置即可生效!

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved