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