Ⅰ sql Server佔用內存過高,什麼原因導致的,用什麼方法可以解決
SQL Server運行越久,佔用內存會越來越大。因為sql server本身內存回收機製做的不好,這是微軟系列的伺服器&資料庫問題的通病。
解決SQL Server佔用內存過高的方法:
1.定期重啟SQL Server 2008 R2資料庫服務即可。
拓展資料
SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。
Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
網路Microsoft SQL Server
Ⅱ sql資料庫伺服器,內存佔用過大怎麼辦
SqlServer系統內存管理在沒有配置內存最大值,很多時候我們會發現運行SqlServer的系統內存往往居高不下。這是由於他對於內存使用的策略是有多少閑置的內存就佔用多少,直到內存使用慮達到系統峰值時(預留內存根據系統默認預留使用為准,至少4M),才會清除一些緩存釋放少量的內存為新的緩存騰出空間。
這些內存一般都是SqlServer運行時候用作緩存的,例如你運行一個select語句,執行個存儲過程,調用函數;
1.數據緩存:執行個查詢語句,SqlServer會將相關的數據頁(SqlServer操作的數據都是以頁為單位的)載入到內存中來,下一次如果再次請求此頁的數據的時候,就無需讀取磁碟了,大大提高了速度。
2.執行命令緩存:在執行存儲過程,自定函數時,SqlServer需要先二進制編譯再運行,編譯後的結果也會緩存起來,再次調用時就無需再次編譯。
在我們執行完相應的查詢語句,或存儲過程,如果我們不在需要這些緩存,我可以將它清除,DBCC管理命令緩存清除如下:
--清除存儲過程緩存
DBCCFREEPROCCACHE
--註:方便記住關鍵字FREEPROCCACHE可以拆解成FREE(割捨,清除)PROC(存儲過程關鍵字簡寫),CACHE(緩存)
--清除會話緩存
DBCCFREESESSIONCACHE
--註:FREE(割捨,清除)SESSION(會話)CACHE(緩存)
--清除系統緩存
DBCCFREESYSTEMCACHE('All')
--註:FREESYSTEMCACHE
--清除所有緩存
DBCCDROPCLEANBUFFERS
--註:DROPCLEANBUFFERS
Ⅲ SQL佔用伺服器內存太多求助!
1. 60個DB本身不是瓶頸; 如果某些資料庫平時用不上也可以將它們分離出來, 即便不分離, 若長期沒有操作也不會佔用伺服器內存資源和CPU資源
2. 32G內存占滿不是太大的問題. SQL將數據盡可能地載入到內存中可以加快查詢的速度, 若想限制SQL的內存佔用量, 要在SQLServer上進行配置,限定內存使用上限
3. 要改善查詢速度慢可能還得從應用方面入手
Ⅳ 怎麼處理SQL Server資料庫佔用過多內存
可以設定SQL Server的,內存佔用。
具體的參看:http://jingyan..com/article/624e74594ad38434e9ba5a4b.html
提示的是:
1、在伺服器上,合理的,較多的內存佔用可以加快SQL的服務能力。
2、如個人電腦上測試使用SQL Server,不用時,可以去控制面版中的服務中停止相關的服務,並設定為不自動起動,可以最大的減小SQL Server對電腦的資源佔用。
Ⅳ 為什麼讀取SQL的資料庫會佔用內存那麼大
因為SQL使用了緩存技術,所以在使用一段時間以後內存佔用會越來越多。
打開企業管理器,在你的SQL伺服器上點右鍵,查看屬性。
在「內存」項中把內存的「最大值」改小一點,不要超過你的內存的一半,或者選中「使用固定的內存大小」,然後將值設定為你內存的一半也可以。
Ⅵ sql吃內存疑問
使用MSSQL的網管朋友都會被MSSQL的吃內存能力所佩服得五體投地,一個小小的網站,運行若干天之後,MSSQL就會把伺服器上所有的內存都吃光,此時你不得不重新啟動一下伺服器或MSSQL來釋放內存,有人認為是MSSQL有內存泄露問題,其實不然,微軟給我們了明確說明:
Quote:
概要
在您啟動 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 內存池」
Ⅶ SQL Server最大內存佔用是多少求答案
較高的 2 GB 地址由系統保留使用。Windows NT Server 企業版為每個 Microsoft Win3203 應用程序提供 4 GB 的虛擬地址空間,其中較低的 3 GB 地址空間是每個進程專用的,並可由應用程序使用。較高的 1 GB 地址由系統保留使用。
4-GB 的地址空間由 Windows NT V虛擬內存管理器(VMM)映射到可用的物理內存空間。取決於硬體平台的支持,可用的物理內存可以高達 4 GB。
Win32 應用程序(如 SQL Server)只能識別虛擬(或稱邏輯)地址,而不是物理地址。在給定的某一時刻一個應用程序使用多少物理內存由可用的物理內存和 VMM所決定。應用程序不能直接控制物理內存。
象 Windows NT 4.0 或 Windows 2000 這樣的虛擬地址系統允許過度提交物理內存,這使虛擬內存和物理內存的比率大於 1:1。因此,較大的程序可以運行在具有不同物理內存配置的計算機上。然而應用比組合平均工作集大得多的虛擬內存可能導致較差的性能。
SQL Server 可以將內存鎖定為工作集。因為內存被鎖定了,當運行其它應用程序時可能出現內存不足的錯誤。如果出現內存不足的錯誤,則可能是分配給 SQL Server 的內存太多。set working set size選項(通過 sp_configure 或 SQL Server 企業管理器設置) 可以使鎖定內存為工作集功能失效。默認情況下,set working set size 選項處於禁用狀態。
手工配置給 SQL Server 多於物理內存數量的虛擬內存會導致性能較低。而且,必須考慮 Windows NT 4.0 或 Windows 2000 操作系統的內存需求(大約 12 MB,因應用程序的開銷而略有不同)。當 SQL Server 的配置參數上調時,系統的開銷可能也會增長,因為 Windows NT 4.0 或 Windows 2000 需要更多的常駐內存來支持附加的線程、頁表等。允許 SQL Server to 動態使用內存可以避免內存相關的性能問題
Ⅷ 一個SQL資料庫後台運行閑置會佔用多少系統資源比如
所謂的資源,最主要的是cpu和內存,閑置的時候當然cpu是不會佔用的,但內存資料庫引擎有100多mb,如果你開啟了分析服務,報表服務或通知服務等,它們每一種會佔用50M左右的內存,
正如你所說的,sql都是以系統服務的方式運行,在開機的時候它們會和操作系統一樣自動載入,所以關掉不用的是很有必要的,你可以在開始-程序-sql server 2005-配置工具-sql configure management中查看哪些服務是打開的,像分析服務,報表服務,通知服務一般你這種情況是用不到的,你可以把它們設為手動開啟。
cpu的使用的話你直接打開windows任務管理器查看一下cpu的使用率就清楚了,
Ⅸ sql server 內存使用不高
登陸SQL Server。
通過Microsoft SQL Server Management Studio連接登陸SQL Server伺服器。
登陸成功後,選中伺服器右鍵屬性查看伺服器屬性,選中內存頁面,可以看到最大內存大小設置是3000M。
6
總結操作步驟:
1. 登陸SQL Server。
2. 登陸成功後,選中伺服器右鍵屬性查看伺服器屬性,選中內存頁面,可以看到最大內存大小設置是3000M。
3. 通過資源管理器可以看到 SQL server 進程使用的內存差不多是3000M。
4. 通過伺服器屬性中的內存頁面,把最大內存設為1024M點確認後,等一會,再通過資源管理器查看SQL server進程使用的內存會降1024M左右。
5. 通過伺服器屬性頁面,把最大伺服器內存設為合理的大小30000M。
謝謝閱讀,希望帶給你幫助。