sqlserver內(nèi)存釋放
來源:易賢網(wǎng) 閱讀:1528 次 日期:2014-12-10 11:39:31
溫馨提示:易賢網(wǎng)小編為您整理了“sqlserver內(nèi)存釋放”,方便廣大網(wǎng)友查閱!

注:本人在用sqlserver2000測試 ,很多命令都不能用

由于sql server對于系統(tǒng)內(nèi)存的管理策略是有多少占多少,除非系統(tǒng)內(nèi)存不夠用了(大約到剩余內(nèi)存為4m左右),

sql server才會釋放一點點內(nèi)存。所以很多時候,我們會發(fā)現(xiàn)運行sql server的系統(tǒng)內(nèi)存往往居高不下。

這些內(nèi)存一般都是sql server運行時候用作緩存的,例如你運行一個select語句,

那么sql server會將相關(guān)的數(shù)據(jù)頁(sql server操作的數(shù)據(jù)都是以頁為單位的)加載到內(nèi)存中來,

下一次如果再次請求此頁的數(shù)據(jù)的時候,就無需讀取磁盤了,大大提高了速度。這類的緩存叫做數(shù)據(jù)緩存。

還有一些其他類型的緩存,如執(zhí)行存儲過程時,sql server需要先編譯再運行,編譯后的結(jié)果也會緩存起來,

下一次就無需再次編譯了。如果這些緩存已經(jīng)不需要了,那么我們可以調(diào)用以下幾個dbcc管理命令來清理這些緩存:

dbcc freeproccache

dbcc freesessioncache

dbcc freesystemcache('all')

dbcc dropcleanbuffers

這幾個命令分別用來清除存儲過程相關(guān)的緩存、會話緩存、系統(tǒng)緩存以及所有所有緩存

但是需要注意的是,這幾個命令雖然會清除掉現(xiàn)有緩存,為新的緩存騰地方,

但是sql server并不會因此釋放掉已經(jīng)占用的內(nèi)存。無奈的是,sql server

并沒有提供任何命令允許我們釋放不用到的內(nèi)存。因此我們只能通過動態(tài)調(diào)整

sql server可用的物理內(nèi)存設(shè)置來強迫它釋放內(nèi)存。

我們也可以通過sql server management企業(yè)管理器進行動態(tài)控制。

連接到企業(yè)管理器之后打開sql server實例的屬性面板,

找到內(nèi)存設(shè)置,改變其中的最大服務(wù)器內(nèi)存使用即可

--內(nèi)存使用情況

select * from sys.dm_os_performance_counters

where counter_name in ('target server memory (kb)','total server memory (kb)')

-- 內(nèi)存狀態(tài)

dbcc memorystatus

--查看最小最大內(nèi)存

select

cfg.name as [name],

cfg.configuration_id as [number],

cfg.minimum as [minimum],

cfg.maximum as [maximum],

cfg.is_dynamic as [dynamic],

cfg.is_advanced as [advanced],

cfg.value as [configvalue],

cfg.value_in_use as [runvalue],

cfg.description as [description]

from

sys.configurations as cfg

--設(shè)置最小最大內(nèi)存

sp_configure 'show advanced options', 1

go

sp_configure 'min server memory', 0

reconfigure

go

sp_configure 'max server memory', 2147483647

reconfigure

go

sp_configure 'max server memory', 256

reconfigure

go

sp_configure 'show advanced options', 0

-----------------------------------------------------------------------------------------------

create proc [dbo].reclaimmemory --強制釋放內(nèi)存

as

begin

dbcc freeproccache

dbcc freesessioncache

dbcc freesystemcache('all')

dbcc dropcleanbuffers

exec sp_configure 'max server memory', 256

exec ('reconfigure' )

waitfor delay '00:00:05'

exec sp_configure 'max server memory', 2147483647

exec ('reconfigure' )

go

end

--使用示例

/*

reclaimmemory

*/

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機網(wǎng)站地址:sqlserver內(nèi)存釋放
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)