SQL Server 內存占用高分析及解決辦法
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
一、問題1.1、SQL Server內存占用高 ,內存不釋放 1.2、SQL Server 內存使用策略SQL Server對服務器內存的使用策略是有多少占多少(大約到剩余內存為4M左右)只用在服務器內存不足時, 才會釋放一點占用的內存,所以很多時候,我們會發現運行SQL Server的系統內存往往居高不下這些內存一般都 是SQL Server運行時候用作緩存的。 數據緩存: 例如:你運行一個select語句,那么SQL Server會將相關的數據頁(SQL Server操作的數據都是以頁為單位的,在 SQL Server中頁的大小始終是8kb的大小,頁有不同的類型:數據頁,索引頁,系統頁等等)加載到內存中進行 緩存,以便于再次請求此頁的數據的時候,直接從內存返回,就無需讀取磁盤了,大大提高了速度。 執行命令緩存: 如執行存儲過程,自定函數時,SQL Server 需要先二進制編譯再運行,編譯后的結果也會緩存起來,再次調用時就無需再次編譯。 二、解決辦法當我們知道SQL Server 內存占用方式,就有以下兩種解決辦法
結果集部分重要指標解釋(請注意, 1、Total Server Memory (KB)
2、Target Server Memory (KB)
3、Memory Grants Outstanding
4、Page Life Expectancy (PLE)
5、Available Physical Memory (KB)
6、Available Paging File (KB)
7、Percent of Committed Memory in WS
8、System Physical Memory Low
9、Page Faults
10、Memory Grants Pending
11、Lock Pages in Memory Usage (KB)
12、Large Pages Allocated (KB)
這些關鍵指標提供了關于SQL Server內存使用情況的全面視圖,并且對于診斷性能問題非常有價值。通過定期監控這些指標,可以及時發現潛在的問題,并采取適當的措施來優化SQL Server的性能。此外,結合動態管理視圖(DMVs),如 緩存清除命令
以上命令雖然會清除掉現有緩存,為新的緩存騰出空間,但是Sql server并不會因此釋放掉已經占用的內存。Sql Server并沒有提供任何命令允許我們釋放不用到的內存。因此我們只能通過動態調整Sql Server可用的物理內存設 置來強迫它釋放內存。 如果想讓 Sql Server 主動釋放 占用并空閑的內存空間,可以設置Sql Server占用內存的上限,就會讓Sql server在 內存上限范圍內,主動清除臟數據替換成熱數據。因此還得如下操作 三、設置內存最大占用值設置方式: 從自帶的studio 連接,,在數據庫服務器名稱上點擊【右鍵】,選擇【屬性】,然后,找到【內存】選項,在右邊的【使用AWE分配內存】(sqlServer64的應該不用勾)左邊把對勾打上。在最大服務器內存(MB)上填入適當的大小(具體填多大,肯定不能超過計算機的物理內存,建議控制在60%-75%),設置成功后重啟 四、 其他結果集圖片:執行 DBCC MemoryStatus 轉自https://www.cnblogs.com/blbl-blog/p/18676524 該文章在 2025/1/18 10:05:29 編輯過 |
關鍵字查詢
相關文章
正在查詢... |