SQL Server內存管理小知識,sql server從入門到精通SQL Server內存管理知識今天,我們來談談SQL server的內存管理。在我們說之前,我們需要問一個問題。SQL Server實際上是如何使用內存的在你知道如何使用它之前你不能談論如何管理它。簡單來說SQL Server數據庫的內存使用原則就是......
今天,我們來談談SQL server的內存管理。在我們說之前,我們需要問一個問題。SQL Server實際上是如何使用內存的在你知道如何使用它之前你不能談論如何管理它。
簡單來說SQL Server數據庫的內存使用原則就是,有多少內存就占用多少內存,不會自動釋放內存。原因是它的存儲引擎本身就是Windows下的一個進程,所以在使用內存的時候和其他Windows進程是一樣的。申請內存后,SQL Server的內存使用情況大致可以分為兩部分:一是緩沖池內存,被數據頁和空閑頁占用;二是無緩沖內存,被線程、dll、鏈接服務器等占用。其中,緩沖池內存占大頭。
這有什么問題比如執行一個結果集比較大的sql時,數據查詢取出后,會一直占用內存,直到機器內存滿了為止(不會爆,因為最大內存可以受一個圖的限制,滿了之后還是略小于服務器機器內存)。在重啟數據庫服務之前,SQL Server不會主動釋放內存,也沒有辦法人為釋放。達到最大服務器內存的設定值,所以SQL Server的基本內存利用率比較高(80%以上)。
那怎么解決呢最直接的方法就是人為修改最大可用物理內存來限制它。
方法1:
緩沖池占用的內存由下面圖1中的最大服務器內存和最小服務器內存設置,因此sqlservr.exe(圖2)占用的內存可能大于圖1中設置的最大內存。管理員登錄到數據庫客戶端(Microsoft SQL Server Management Studio),右鍵單擊實例名稱(樹菜單的根節點,顯示登錄名的列),然后選擇Propertiesgt;內存,設置“最大服務器內存”根據實際情況調整內存(MB),比如調整到當前總服務器內存利用率的70%左右。
圖1 SQL Server可控內存選項
圖2 SQL Server進程內存使用情況
方法二:
如果使用華為云RDS SQL Server,解決方案就更簡單了。只需要在控制臺實例管理中修改最大服務器內存的參數值,修改完該參數后不需要重啟數據庫。不得不說,云數據庫用起來更方便明了/
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部