SQL Server數據庫占用過多內存的解決方法

經常有網友會問,SQL Server占用了太多的內存,而且還會不斷的增長;或者說已經設置了使用內存,可它沒有用到那麽多,這是怎麽一回事兒呢?

下面,我們來具體看以看SQL Server是怎樣使用內存的。

最大的開銷一般是用于數據緩存,如果內存足夠,它會把用過的數據和覺得你會用到的數據統統扔到內存中,直到內存不足的時候,才把命中率低的數據給清掉。所以一般我們在看statistics io的時候,看到的physics read都是0。

其次就是查詢的開銷,一般地說,hash join是會帶來比較大的內存開銷的,而merge join和nested loop的開銷比較小,還有排序和中間表、遊標也是會有比較大的開銷的。所以用于關聯和排序的列上一般需要有索引。

再次就是對執行計劃、系統數據的存儲,這些都是比較小的。

我們先來看數據緩存對性能的影響,如果系統中沒有其它應用程序來爭奪內存,數據緩存一般是越多越好,甚至有些時候我們會強行把一些數據pin在高速緩存中。但是如果有其它應用程序,雖然在需要的時候MS SQL會釋放內存,但是線程切換、IO等待這些工作也是需要時間的,所以就會造成性能的降低。這樣我們就必須設置MS SQL的最大內存使用。可以在SQL Server 屬性(內存選項卡)中找到配置最大使用內存的地方,或者也可以使用sp_configure來完成。如果沒有其它應用程序,那麽就不要限制MS SQL對內存的使用。

最後我們來看查詢的開銷,這個開銷顯然是越低越好,因爲我們不能從中得到好處,相反,使用了越多的內存多半意味著查詢速度的降低。所以我們一般要避免中間表和遊標的使用,在經常作關聯和排序的列上建立索引。

SQL Server數據庫占用過多內存的解決方法
經常有網友會問,SQL Server占用了太多的內存,而且還會不斷的增長;或者說已經設置了使用內存,可它沒有用到那麽多,這是怎麽一回事兒呢? 下面,我們來具體看以看SQL Server是怎樣使用內存的。 最大的開銷一般是用...查看完整版>>SQL Server數據庫占用過多內存的解決方法
 
SQL Server數據庫sa密碼相關問題的解決方法
1、請教如何查找sqlserver的sa密碼? 查詢分析器,連接時,身份驗證使用"使用windows身份驗證" 然後,執行: EXEC sp_password NULL, 'NewPassword', 'Sa' 企業管理器-->實例名-->安全性-->登錄-->雙擊右邊...查看完整版>>SQL Server數據庫sa密碼相關問題的解決方法
 
Sql Server 2000數據庫日志日益龐大的解決方法
我在使用sqlserver2000數據庫時,使用一段時間後日志日益龐大。所以我就給Server添加了一個作業,讓它每月運行一次。來完成一次我的數據庫維護工作。(dmt就是我的多媒體數據庫名)backup log dmt with no_log--這裏...查看完整版>>Sql Server 2000數據庫日志日益龐大的解決方法
 
SQL Server 2005 Express附加(Attach)的數據庫爲“只讀”的解決方法
SQL Server 2005 Express附加(Attach)的數據庫爲“只讀”的解決方法
我的操作系統爲Windows 2003 Server , 文件系統NTFS, 在SQL Server 2005 ExPRess 上附加(Attach)從另外一台電腦Copy過來的數據庫後,數據庫爲“只讀”。如下圖:解決辦法:打開 SQL Server Configuration Manager, 打...查看完整版>>SQL Server 2005 Express附加(Attach)的數據庫爲“只讀”的解決方法
 
JDBC鏈接sql server數據庫遇到的問題和解決方法
兩天的時間全都耗在這裏了,其實這並不是很複雜的事情但還是把我搞了半天.首先是下載jdbc sql server 驅動.然後是將mssqlserver.jar,msbase.jar,msutil.jar考到tomcat/common/lib 下這裏出現了問題.因爲使用JCreater....查看完整版>>JDBC鏈接sql server數據庫遇到的問題和解決方法
 
解決MSSQL占用過多內存的簡單方法
  首先,我們來看看MSSQL是怎樣使用內存的。  最大的開銷一般是用于數據緩存,如果內存足夠,它會把用過的數據和覺得你會用到的數據統統扔到內存中,直到內存不足的時候,才把命中率低的數據給清掉。所以一般我們...查看完整版>>解決MSSQL占用過多內存的簡單方法
 
解決MSSQL占用過多內存的簡單方法
  經常看見有人問,MSSQL占用了太多的內存,而且還不斷的增長;或者說已經設置了使用內存,可是它沒有用到那麽多,這是怎麽一回事兒呢?    首先,我們來看看MSSQL是怎樣使用內存的。  最大的開銷一般是用于數...查看完整版>>解決MSSQL占用過多內存的簡單方法
 
SQL Server Express 數據庫自動部署問題及解決
這幾天做了一個程序,VS 2005 + SQL Server Express,仔細查閱文檔,發現 SQL Server Express 支持 XCOPY 部署方式,也就是說,只要目標計算機有了 SQL Server Express,那麽只需要把數據庫拷貝過去,可以在程序的同...查看完整版>>SQL Server Express 數據庫自動部署問題及解決
 
獲取SQL Server元數據的幾種方法
元數據簡介 元數據 (metadata) 最常見的定義爲"有關數據的結構數據",或者再簡單一點就是"關于數據的信息",日常生活中的圖例、圖書館目錄卡和名片等都可以看作是元數據。在關系型數據庫管理系統 (DBMS) 中,元數據描...查看完整版>>獲取SQL Server元數據的幾種方法
 
 
回到王朝網路移動版首頁