掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

關于MSSQL占用(yòng)過多内存的(de)問題

2019/3/7 15:18:35

關于MSSQL占用(yòng)過多内存的(de)問題

經常看見有(yǒu)人(rén)問,MSSQL占用(yòng)了太多的(de)内存,而且還不斷的(de)增長;或者說已經設置了使用(yòng)内存,可(kě)是它沒有(yǒu)用(yòng)到(dào)那麽多,這是怎麽一回事兒呢?
    首先,我們來看看MSSQL是怎樣使用(yòng)内存的(de)。最大(dà)的(de)開(kāi)銷一般是用(yòng)于數據緩存,如(rú)果内存足夠,它會(huì)把用(yòng)過的(de)數據和(hé)覺得你(nǐ)會(huì)用(yòng)到(dào)的(de)數據統統扔到(dào)内存中,直到(dào)内存不足的(de)時候,才把命中率低的(de)數據給清掉。所以一般我們在看statistics io的(de)時候,看到(dào)的(de)physics read都(dōu)是0。

    其次就是查詢的(de)開(kāi)銷,一般地(dì)說,hash join是會(huì)帶來比較大(dà)的(de)内存開(kāi)銷的(de),而merge join和(hé)nested loop的(de)開(kāi)銷比較小(xiǎo),還有(yǒu)排序和(hé)中間表、遊标也(yě)是會(huì)有(yǒu)比較大(dà)的(de)開(kāi)銷的(de)。所以用(yòng)于關聯和(hé)排序的(de)列上(shàng)一般需要有(yǒu)索引。

    再其次就是對執行(xíng)計(jì)劃、系統數據的(de)存儲,這些都(dōu)是比較小(xiǎo)的(de).我們先來看數據緩存對性能(néng)的(de)影響,如(rú)果系統中沒有(yǒu)其它應用(yòng)程序來争奪内存,數據緩存一般是越多越好,甚至有(yǒu)些時候我們會(huì)強行(xíng)把一些數據pin在高(gāo)速緩存中。但(dàn)是如(rú)果有(yǒu)其它應用(yòng)程序,雖然在需要的(de)時候MSSQL會(huì)釋放(fàng)内存,但(dàn)是線程切換、IO等待這些工(gōng)作也(yě)是需要時間的(de),所以就會(huì)造成性能(néng)的(de)降低。這樣我們就必須設置MSSQL的(de)最大(dà)内存使用(yòng)。可(kě)以在SQL Server 屬性(内存選項卡)中找到(dào)配置最大(dà)使用(yòng)内存的(de)地(dì)方,或者也(yě)可(kě)以使用(yòng)sp_configure來完成。如(rú)果沒有(yǒu)其它應用(yòng)程序,那麽就不要限制(zhì)MSSQL對内存的(de)使用(yòng)。

    然後來看查詢的(de)開(kāi)銷,這個(gè)開(kāi)銷顯然是越低越好,因爲我們不能(néng)從中得到(dào)好處,相(xiàng)反,使用(yòng)了越多的(de)内存多半意味著(zhe)查詢速度的(de)降低。所以我們一般要避免中間表和(hé)遊标的(de)使用(yòng),在經常作關聯和(hé)排序的(de)列上(shàng)建立索引。


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号