sql回收內存
① 如何解決sqlServer占內存過多的問題
我們需要准備的材料分別是:電腦。
1、在我的電腦中,搜索訪問sql佔用內存,在右側的管理伺服器中選擇重新啟動,重啟一下IIS。
② 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 Server內存不斷增加問題
為此,資料庫引擎獲取盡可能多的可用內存,同時保留足夠的可用內存以防操作系統交換內存。 SQL Server 實例在啟動時通常獲取8到12MB的內存以完成初始化過程。當實例完成初始化後,就不會再獲取更多的內存,直到用戶連接到該實例並開始產生工作負荷。這時,該實例根據需要不停地獲取內存以支持工作負荷。隨著更多的用戶連接並運行查詢,SQL Server 將獲取支持需求所需的額外內存。該實例將繼續獲取內存直到達到自身的內存分配目標,並且直到達到該目標的下限才會釋放任何內存。 為了在不產生多餘換頁 I/O 的情況下獲取盡可能多的內存,SQL Server 的每個實例都配置一個內存獲取目標,直到電腦的可用物理內存在4MB到10MB的范圍內。之所以選擇該范圍是因為測試表明 Windows NT 和 Windows 2000 都有最小內存交換,直到內存分配等於可用物理內存減去4MB。工作負荷處理任務重的 SQL Server 實例保留的可用物理內存為范圍的較低端 (4MB);工作負荷處理任務輕的實例保留的可用物理內存為范圍的較高端 (10MB)。 SQL Server 實例的目標隨工作負荷的改變而變化。當更多的用戶連接並產生更多的工作時,該實例傾向於獲取更多的內存以使可用的內存保持在4MB的限制以下。當工作負荷減輕時,該實例將其目標調整為 10MB的可用空間,並釋放內存給操作系統。將可用空間量保持在10MB和4MB之間可防止 Windows NT 或 Windows 2000 過多執行換頁操作,同時使 SQL Server 得以獲得盡可能最大的高速緩沖存儲器而不至引起額外的交換。 實例的目標內存配置和資料庫緩沖池的頁相對於可用池大小的需求有關。在任何實時點,緩沖區頁的總需求取決於滿足任何當前執行的查詢所需的數據頁數。假如相對於高速緩沖存儲器內的頁數,數據頁的需求很大,則當前在緩沖區內的每一頁很可能在相對較短的時間內由新頁替換。這可由緩沖區管理器對象的頁生命期性能計數器來度量。對於相對較小的緩沖區有較高需求的情況將生成短生命期,而純粹的影響就是使 I/O 增加,因為在頁可由多個邏輯讀取引用之前往往要被重寫。為減輕這個問題,資料庫引擎能夠獲取更多的內存以增加高速緩沖存儲器的大小。當頁生命期長時,資料庫引擎將可用內存定位於目標的高端 (10 MB);而當頁生命期短時,資料庫引擎定位於目標范圍的低端 (4MB)。 隨著其他應用程式在運行 SQL Server 實例的電腦上啟動,他們消耗內存致使可用物理內存量降到 SQL Server 的目標以下。SQL Server 實例於是從其地址空間釋放足夠內存,以使可用內存量回到 SQL Server 的目標。假如有其他應用程式停止運行而使可用內存增多,SQL Server 實例將增加其內存分配大小。SQL Server 能夠每秒釋放並獲取幾MB位元組的內存,這使他得以根據內存分配變化作出快速調整。 您能夠通過配置允許sql server能夠使用的最大內存來做限制: 最小和最大伺服器內存的影響 min server memory 和 max server memory 配置選項建立由 SQL Server 資料庫引擎使用的內存量的上限和下限。資料庫引擎並不立即獲取 min server memory 中指定的內存量。資料庫引擎啟動時只使用初始化所需的內存。隨著資料庫引擎工作負荷的增加,他將繼續獲取支持工作負荷所需的內存。資料庫引擎直到到達 min server memory 中指定的內存量才會釋放任何所需的內存。一旦到達 min server memory,資料庫引擎將使用標准演算法(使操作系統的可用內存保持在 4MB到 10MB之間)獲取和釋放所需內存。唯一的區別是資料庫引擎從不將內存分配降到 min server memory 所指定的水平下,也從不獲取超過max server memory 所指定水平的內存。 資料庫引擎獲取的內存量完全取決於放置在實例上的工作負荷。不處理很多請求的 SQL Server 實例可能永遠達不到 min server memory。 假如為 min server memory 和 max server memory 指定相同的值,則一旦分配給資料庫引擎的內存達到該值,資料庫引擎將停止動態釋放和獲取內存。 假如在運行 SQL Server 實例的電腦上頻繁啟動或停止其他應用程式,啟動這些應用程式所需的時間可能會因 SQL Server 實例分配和釋放內存而延長。另外,假如 SQL Server 是幾個在一台電腦上運行的伺服器應用程式中的一個,系統管理員可能需要控制分配給 SQL Server 的內存量。
④ 如何釋放Sqlserver所佔用的內存
sqlserver內存佔用過多,如何解決?
sqlserver內存佔用過多,如何解決?
如果你只是開發用,要想讓sqlserver釋放內存,重啟sqlserver的服務就行了。
可以在SQLServer屬性(內存選項卡)中找到配置使用內存的地方,或者也可以使用sp_configure來完成。如果沒有其它應用程序,那麼就不要限制MSSQL對內存的使用。
注意:清除了緩存,不會釋放SQLServer所佔用的內存,所以需要通過修改SQLServer內存或重啟SQLServer伺服器來釋放內存。
SQLServer佔用內存過高的原因是SQLServer本身內存回收機製做的不好。SQLServer運行越久,佔用內存會越來越大。解決方法:在程序裡面啟動SQLServer2008,系統登錄,右鍵點擊服務名,選擇「屬性」。
伺服器內存佔用過高的解決方法:1,首先通過任務管理器進行進程排序,查找佔用內存較大的程序進程。
如何釋放Sqlserver所佔用的內存?
如何釋放Sqlserver所佔用的內存?
1、如果你只是開發用,要想讓sqlserver釋放內存,重啟sqlserver的服務就行了。
2、數據緩存:執行個查詢語句,SqlServer會將相關的數據頁(SqlServer操作的數據都是以頁為單位的)載入到內存中來,下一次如果再次請求此頁的數據的時候,就無需讀取磁碟了,大大提高了速度。
3、可以在SQLServer屬性(內存選項卡)中找到配置使用內存的地方,或者也可以使用sp_configure來完成。如果沒有其它應用程序,那麼就不要限制MSSQL對內存的使用。
4、在任務管理器中增加顯示pid欄位。就可以看到佔用內存或者cpu最高的進程pid在命令提示符下運行iisapp-a。注意,第一次運行,會提示沒有js支持,點擊確定。然後再次運行就可以了。
5、打開SQL企業管理器,在運行於本地機器的服務上點右鍵--》屬性--》選擇內存就可以配置最大內存和最小內存了。把最大內存改小,並選擇配置值,最小內存建議為1M。(不推薦為0)。
6、此命令只會讓SQLServer不會繼續佔領新的內存,定期執行一下還可以。關鍵是還要釋放一下內存。
如何解決SQLServer占內存過多的問題
如何解決SQLServer占內存過多的問題
1、如果你只是開發用,要想讓sqlserver釋放內存,重啟sqlserver的服務就行了。
2、可以在SQLServer屬性(內存選項卡)中找到配置使用內存的地方,或者也可以使用sp_configure來完成。如果沒有其它應用程序,那麼就不要限制MSSQL對內存的使用。
3、注意:清除了緩存,不會釋放SQLServer所佔用的內存,所以需要通過修改SQLServer內存或重啟SQLServer伺服器來釋放內存。
4、SQLServer佔用內存過高的原因是SQLServer本身內存回收機製做的不好。SQLServer運行越久,佔用內存會越來越大。解決方法:在程序裡面啟動SQLServer2008,系統登錄,右鍵點擊服務名,選擇「屬性」。
5、伺服器內存佔用過高的解決方法:1,首先通過任務管理器進行進程排序,查找佔用內存較大的程序進程。
sqlservr.exe佔用的內存如何釋放!
sqlservr.exe佔用的內存如何釋放!
在程序裡面啟動SQLServer2008,系統登錄,右鍵點擊服務名,選擇「屬性」。在彈出的窗體裡面,選擇內存,在此紅色框內就可以看到最大內存默認設置,此時可以根據自己實際需求進行估算後,進行設置,設置完成後保存關閉。
如果你只是開發用,要想讓sqlserver釋放內存,重啟sqlserver的服務就行了。
解決SQLServer佔用內存過高的方法:定期重啟SQLServer2008R2資料庫服務即可。
不想讓sqlservr.exe隨機啟動,佔了好大的內存,那麼怎麼來禁止它隨機啟動呢。第一種如果跟我的情況是一樣。打開SQL選中SQLServer,右鍵,屬性。選擇服務。把啟動模式改成手動或者禁止就可以了。
因此,報告的sqlservr.exe所佔用的內存量並不正確。若要獲得正確的SQLServer內存使用情況,可使用總的伺服器內存(KB)性能計數器(該計數器可通過系統監視器激活),或從sysperfinfo中選擇內存使用。
在應用程序啟動和SQLServer釋放內存之間將有一個較短的時間延遲,使用maxservermemory可以避免該延遲,從而可以提高其它應用程序的性能。
解決SQLServer資料庫佔用內存過多的問題
解決SQLServer資料庫佔用內存過多的問題
1、如果你只是開發用,要想讓sqlserver釋放內存,重啟sqlserver的服務就行了。
2、可以在SQLServer屬性(內存選項卡)中找到配置使用內存的地方,或者也可以使用sp_configure來完成。如果沒有其它應用程序,那麼就不要限制MSSQL對內存的使用。
3、數據緩存:執行個查詢語句,SqlServer會將相關的數據頁(SqlServer操作的數據都是以頁為單位的)載入到內存中來,下一次如果再次請求此頁的數據的時候,就無需讀取磁碟了,大大提高了速度。
⑤ SQL伺服器內存怎麼動態分配
SQL伺服器內存有兩種基本管理方法:動態分配和靜態分配
控製程序可使用的內存數量。動態分配允許管理員聲明一塊內存的大小;考慮到它的實際使用,SQL伺服器可以分配給其需要佔用的內存的最大值,並且(理論上)在沒有使用內存的情況下將其釋放。靜態分配則是創建一塊固定的內存空間,提供給SQL Server使用——不再進行分配。
在默認情況下,SQL Server被設置成動態分配,分配給其正在運行的計算機內所有可用的物理內存。許多管理員注意到SQL Server內存隨時間的流逝被逐漸消耗殆盡時,其原因很可能是故障或是內存漏洞,但這個程序正是被設計成這樣的。SQL Server就是要在任何可能的情況下在電腦中運行,並因此為達到其最佳性能而使用所有可用的內存。如果SQL Server在獨立的機器中運行,那麼就讓它分配和釋放其需要的內存吧。
在一個小型商業伺服器機器中,SQL可能與其他程序,如IIS,同時運行,管理員或許嘗試著進行設置,使SQL Server運行在一塊固定大小的內存,目的是控制其不會佔用用於共享的內存。但這並不一定能如願以償。一方面,將內存的最高限度設置得太低,並且沒有分配給SQL伺服器足夠的可用內存來用作類似事務日誌或查詢執行的緩存,所有這些都很難辦到。使SQL伺服器得到執行操作所需內存的惟一方法就是換出其他的頁面,這是個緩慢的過程。
有許多方法可以計算出最好的內存分配。如果你有可預知的用戶負載,依照用戶所需的最大數目分配給他們。微軟推薦至少用4 MB用作動態的最大空間,這已經成為一個可能的規則。如果你的用戶負載變化范圍很大——如以下情況,當你通過IIS 的前端連接到公共的網際網路來支持你的資料庫服務的時候——實時的統計數據將會比僅憑猜測所作的工作幫助更大。在高峰期,把SQL Server的高速緩存命中率和每秒缺頁率等性能數字搜集起來。如果這些數據表明SQL Server正在做大量的交換,那麼增加最大內存空間直到交換逐漸減少。每秒一次或更多次的交換是有壞處的。
另一種選擇是使「為SQL Server預留物理內存」的選項可用,這可以防止SQL Server把已經分配給它的內存換出,即使當其他應用程序能夠使用它時。這可以叫做是一把雙刃劍:它既可以相當大程度的提高性能,也可能帶來更大的性能損害。在有許多RAM 可以共享的(1 GB 或更多)的系統中,這是值得一試的,但是當有其他關鍵的進程可能突然需要大量的內存時,這種辦法是不應該使用的。(並且如果需要的話,SQL Server可能會被迫放棄一些它自己的內存)。如果SQL Server是在獨立的機器上運行,用這種辦法最佳化性能則是值得的。
⑥ 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 內存池」