sqlserver內存釋放
A. 如何解決sqlServer占內存過多的問題
我們需要准備的材料分別是:電腦。
1、在我的電腦中,搜索訪問sql佔用內存,在右側的管理伺服器中選擇重新啟動,重啟一下IIS。
B. sqlserver 佔用內存太高怎麼解決
第一步:打開企業管理器雙擊進入要修改的MSSQL.
第二步:在左側MSSQL上點擊右鍵,選擇屬性,彈出SQL Server屬性(配置)對話框(最好打上SQL SP4補丁)
第三步:點擊內存選項卡. 在這里,你會看到MSSQL默認設置為使用最大內存,也就是你所有的內存,根據你的需要,設置它的最大值(一般為物理內存-128M)和最小值(一般為最大內存的1/4)吧.
第五步:設置完畢,重啟MSSQL服務,配置即可生效!
C. SQL Server佔用內存過高,什麼原因導致的,用什麼方法可以解決
經常使用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(WINDOWS平台上強大的資料庫平台) Configuration Settings(確定正確的 sql server(WINDOWS平台上強大的資料庫平台) 配置設置)
請注意,伺服器內存最大值選項只限制 SQL Server 緩沖池的大小。伺服器內存最大值選項不限制剩餘的未保留內存區域,sql server(WINDOWS平台上強大的資料庫平台) 准備將該區域分配給其他組件,例如擴展存儲過程、COM 對象、以及非共享 DLL、EXE 和 MAPI 組件。由於前面的分配SQL Server專用位元組超過伺服器內存最大值配置是很正常的。有關此未保留內存區域中分配的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:316749 PRB:在使用大量資料庫時可能沒有足夠的虛擬內存
下面我們就來實戰如何限制MSSQL內存使用:
第一步:打開企業管理器雙擊進入要修改的MSSQL.
第二步:在左側MSSQL上點擊右鍵,選擇屬性,彈出SQL Server屬性(配置)對話框(最好打上SQL SP4補丁)
第三步:點擊內存選項卡. 在這里,你會看到MSSQL默認設置為使用最大內存,也就是你所有的內存,根據你的需要,設置它的最大值(一般為物理內存-128M)和最小值(一般為最大內存的1/4)吧.
第五步:設置完畢,重啟MSSQL服務,配置即可生效!
D. 如何優化ms server 2008 r2 的內存釋放
SQL Server 2008 或者R2的默認內存分配是2147483647MB, 差不多算是無窮大,對於系統內存的管理策略是有多少佔多少。SQLserver會把所有處理過的SQL操作緩存在內存里,這樣就不用總去讀硬碟了。但是如果長時間運行SQL Server, 系統內存被用的差不多,再開啟其他程序就有可能會報內存不足。這時候就需要釋放內存緩存啦。一般我用以下兩種辦法:
很簡單,打開SQL Server configuration Manager,然後把SQL Server(MSSQLSERVER)重啟一下,一般默認的instance 就是MSSQLServer,當然你如果裝了其他的instance(實例)就選擇相應的,例如MSSQLServer(SQLServLatin1), MSSQLServer(ARABIC)。
這種方法最簡單有效,但是只能臨時的清除SQLServer緩存所佔的內存空間,時間長了SQLServer還會把內存占滿。而且很重要的是這種方法不能在SQLserver有連接的情況下使用,那樣會讓正在使用SQLServer的用戶暫時無法連接SQLServer,甚至導致程序處錯誤。而你作為管理員就……
第二種方法比較復雜,我也不是SQLServer高手,只是從網上學習得來的一些query:
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE('All')
DBCC DROPCLEANBUFFERS
以上一段一般能釋放緩存,(注意引號有的時候因為word文檔里打不出英文的引號,最好拷到記事本里編輯一下)但是有的時候不是很管用。因為SQLserver不會因為Cache(緩存)釋放了而釋放內存,佔了茅坑不一定XX。此命令只會讓SQLServer不會繼續佔領新的內存,定期執行一下還可以。關鍵是還要釋放一下內存。
通過以下Query 可以看出當前伺服器所佔內存情況
SELECT * FROM sys.dm_os_performance_counters
WHERE counter_name IN ('Target Server Memory (KB)','Total Server Memory (KB)')
Target Server Memory(KB)和 Total Server Memory(KB)字面意思所得就是目標和當前SQL Server所佔的內存大小。
EXEC sp_configure 'show advanced options', 1
GO
EXEC sp_configure 'max server memory', 256
EXEC ('RECONFIGURE' )
WAITFOR DELAY '00:00:05'
EXEC sp_configure 'max server memory', 2147483647
EXEC ('RECONFIGURE' )
GO
EXEC sp_configure 'show advanced options', 0
GO
其實我用這幾句也不是很奏效,時間一長還是可能會有內存不夠的情況。
******
總的來說我的管理辦法是:
裝好了SQLServer之後立刻設置最大使用內存
EXEC sp_configure 'show advanced options', 1 -- 這句是打開advanced options
GO
EXEC sp_configure 'max server memory', 9216 -- 設置最大內存為9G,我們server 內存是16G的,留下7G足夠了
EXEC ('RECONFIGURE' )
GO
EXEC sp_configure 'show advanced options', 0 --記得用完了把advanced options關掉
GO
E. sql 2008 R2 怎樣 釋放內存
請限制sql server 可使用的最大內存數
目前發現有部分專享自由型主機由於sqlserver資料庫佔用的內存過大,造成伺服器可用內存資源過少,導致伺服器運行緩慢甚至宕機。您可以通過以下方法限制sqlserver佔用的最大內存,從而保證伺服器有足夠的內存可以使用:
1、登錄伺服器->打開企業管理器
2、打開SQL Server組
3、右鍵點擊 (local)本地實例->選擇「屬性」
4、點擊「內存」項,在其中「最大值」項中可以設定當前sqlserver可佔用的最大內存
F. 如何降低SQL Server 2012內存使用率
這個問題我關注了半年多,好像沒有什麼好的辦法,用一些內存整理工具可以將sqlserver佔用的內存釋放一些(比如優化大師里的內存整理)。
關鍵還得要在程序上下工夫,優化查詢方法,降低訪問資料庫頻率才是硬道理
G. 如何清除SQL SERVER緩存和釋放內存
1.打開Sql
Server
Management(企業管理器);2.打開Sql
Server實例的屬性面板;3.找到內存設置,改變其中的最大伺服器內存使用即可
。
H. 在sql server 2000中進行內存的自動釋放怎麼實現拜託各位了 3Q
無論用JAVA還是VB還是什麼其他語言,都是由程序代碼實現的釋放,不是在SQL
SERVER里可以進行設置進行智能釋放的.比如C#中,就是你關閉了連接或者Dispose()之後都會釋放內存,或者使用gc()自動回收.
I. sql資料庫佔用內存太大如何處理
sql server沒有辦法釋放內存,內存都是系統自動管理的
除非你殺調哪些佔用內存大的進程
sql 語句沒寫好,死鎖...都會導致佔用內存很大
select * from master..sysprocesses
kill spid --spid 就是上面查到的spid欄位