SQL Server占用內(nèi)存的解決方法_Mssql數(shù)據(jù)庫(kù)教程
推薦:解析 SQL Server 2008 的精妙之處本文介紹了SQL Server 2008里的一些新的特點(diǎn)以及在試用過(guò)程中發(fā)現(xiàn)的一些精妙之處,大家一起來(lái)看看吧。 安裝 SQL Server 2008的設(shè)置和安裝也有所改進(jìn)。配置數(shù)據(jù)和引擎位已經(jīng)分開(kāi)了,所以它使創(chuàng)建基本的未配置系統(tǒng)的磁盤(pán)圖像變得可能了,它使分布到多個(gè)服務(wù)器
經(jīng)常看見(jiàn)有人問(wèn),MSSQL占用了太多的內(nèi)存,而且還不斷的增長(zhǎng);或者說(shuō)已經(jīng)設(shè)置了使用內(nèi)存,可是它沒(méi)有用到那么多,這是怎么一回事兒呢?
首先,我們來(lái)看看MSSQL是怎樣使用內(nèi)存的。
最大的開(kāi)銷(xiāo)一般是用于數(shù)據(jù)緩存,如果內(nèi)存足夠,它會(huì)把用過(guò)的數(shù)據(jù)和覺(jué)得你會(huì)用到的數(shù)據(jù)統(tǒng)統(tǒng)扔到內(nèi)存中,直到內(nèi)存不足的時(shí)候,才把命中率低的數(shù)據(jù)給清掉。所以一般我們?cè)诳磗tatistics io的時(shí)候,看到的physics read都是0。
其次就是查詢(xún)的開(kāi)銷(xiāo),一般地說(shuō),hash join是會(huì)帶來(lái)比較大的內(nèi)存開(kāi)銷(xiāo)的,而merge join和nested loop的開(kāi)銷(xiāo)比較小,還有排序和中間表、游標(biāo)也是會(huì)有比較大的開(kāi)銷(xiāo)的。
所以,用于關(guān)聯(lián)和排序的列上一般需要有索引。
再其次就是對(duì)執(zhí)行計(jì)劃、系統(tǒng)數(shù)據(jù)的存儲(chǔ),這些都是比較小的。
我們先來(lái)看數(shù)據(jù)緩存對(duì)性能的影響,如果系統(tǒng)中沒(méi)有其它應(yīng)用程序來(lái)爭(zhēng)奪內(nèi)存,數(shù)據(jù)緩存一般是越多越好,甚至有些時(shí)候我們會(huì)強(qiáng)行把一些數(shù)據(jù)pin在高速緩存中。但是如果有其它應(yīng)用程序,雖然在需要的時(shí)候MSSQL會(huì)釋放內(nèi)存,但是線程切換、IO等待這些工作也是需要時(shí)間的,所以就會(huì)造成性能的降低。這樣我們就必須設(shè)置MSSQL的最大內(nèi)存使用。可以在SQL Server屬性(內(nèi)存選項(xiàng)卡)中找到配置最大使用內(nèi)存的地方,或者也可以使用sp_configure來(lái)完成。如果沒(méi)有其它應(yīng)用程序,那么就不要限制MSSQL對(duì)內(nèi)存的使用。
然后來(lái)看查詢(xún)的開(kāi)銷(xiāo),這個(gè)開(kāi)銷(xiāo)顯然是越低越好,因?yàn)槲覀儾荒軓闹械玫胶锰帲喾矗褂昧嗽蕉嗟膬?nèi)存多半意味著查詢(xún)速度的降低。所以我們一般要避免中間表和游標(biāo)的使用,在經(jīng)常作關(guān)聯(lián)和排序的列上建立索引。
分享:SQL Server 2005 遠(yuǎn)程調(diào)試存儲(chǔ)過(guò)程配置問(wèn)題: 您工作的本機(jī)裝有Visual Studio 2005,局域網(wǎng)中有一臺(tái)SQL Server 2005數(shù)據(jù)庫(kù)服務(wù)器,你想通過(guò)本機(jī)遠(yuǎn)程調(diào)試SQL Server 2005服務(wù)器上的存儲(chǔ)過(guò)程。但是不知道如何配置或啟用遠(yuǎn)程調(diào)試?希望這篇文章對(duì)您有用。 對(duì)于數(shù)據(jù)庫(kù)和Visual Studio在同一機(jī)器的存儲(chǔ)
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類(lèi)似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 高手是怎樣煉成的:精妙SQL語(yǔ)句介紹
- 解析SqlServer2000獲取當(dāng)前日期及格式
- 解析SQL Server 2005常見(jiàn)問(wèn)題
- SQL Server數(shù)據(jù)庫(kù)中處理空值時(shí)常見(jiàn)問(wèn)題
- SQL Server 2008中的代碼安全(六) 對(duì)稱(chēng)密鑰加密
- sql2k中新增加的Function的sqlbook 的幫助
- 三個(gè)SQL視圖查出所有SQL Server數(shù)據(jù)庫(kù)字典
- 如何在SAN上創(chuàng)建SQL Server群集
- 淺析SQL Server 2008中不推薦及不支持的功能
- SQL新手教程:SQL SELECT 語(yǔ)句使用方法
猜你也喜歡看這些
- 解析csv數(shù)據(jù)導(dǎo)入mysql的方法
- MySQL:數(shù)據(jù)庫(kù)知識(shí)點(diǎn)
- MySQL筆記之索引的使用
- MySQL無(wú)法啟動(dòng)1067錯(cuò)誤的解決方法
- 深入SQLite基本操作的總結(jié)詳解
- MySQL SELECT同時(shí)UPDATE同一張表問(wèn)題發(fā)生及解決
- SQL查詢(xún)超時(shí)的設(shè)置方法(關(guān)于timeout的處理)
- MySQL中優(yōu)化sql語(yǔ)句查詢(xún)常用的30種方法
- SQLServer導(dǎo)出數(shù)據(jù)到MySQL實(shí)例介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-SQL Server占用內(nèi)存的解決方法。