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