在物理內(nèi)存很小且很昂貴的年代,引入了虛擬內(nèi)存的技術(shù)。首先,它是一種技術(shù),計(jì)算機(jī)系統(tǒng)中進(jìn)程可以通過(guò)訪問(wèn)大小和尋址與系統(tǒng)中物理內(nèi)存無(wú)關(guān)的內(nèi)存。
1.SqlServer的物理內(nèi)存限制可限制緩沖區(qū)高速緩存和過(guò)程緩存,虛擬內(nèi)存限制可限制連接內(nèi)存。
(緩沖區(qū)高速緩存用于存儲(chǔ)從數(shù)據(jù)庫(kù)磁盤(pán)文件讀入其中的數(shù)據(jù)頁(yè)或索引頁(yè),并將修改后的頁(yè)寫(xiě)回磁盤(pán)。緩沖區(qū)緩存中會(huì)保留一頁(yè),直到緩沖區(qū)管理器需要該緩沖區(qū)讀入更多數(shù)據(jù)。數(shù)據(jù)只有在被修改后才重新寫(xiě)入磁盤(pán)。在將緩沖區(qū)高速緩存中的數(shù)據(jù)寫(xiě)回磁盤(pán)之前,可對(duì)其進(jìn)行多次修改
過(guò)程緩存是SQL Server 內(nèi)存緩沖池的一部分,用于存儲(chǔ)T-SQL批處理、存儲(chǔ)過(guò)程和觸發(fā)器的執(zhí)行計(jì)劃。)
2.32位系統(tǒng)中由于虛擬內(nèi)存的尋址空間限制為4GB,雖然有了PAE和AWE能使用超過(guò)4GB的內(nèi)存了,但是這些內(nèi)存只能用于緩沖區(qū)高速緩存,不可用于連接內(nèi)存和過(guò)程緩存。
3.當(dāng)用戶數(shù)在4000到5000時(shí)(一般情況,當(dāng)然這還是取決于用戶在做什么),這時(shí)SQL Server會(huì)話會(huì)產(chǎn)生連接問(wèn)題,這是虛擬內(nèi)存的問(wèn)題。
4.內(nèi)存設(shè)置的經(jīng)驗(yàn)值:一般的數(shù)據(jù)庫(kù),建議將緩沖區(qū)高速緩存大小設(shè)置為數(shù)據(jù)庫(kù)大小的20%,比如一個(gè)50G的數(shù)據(jù)庫(kù),為SQL Server分配的內(nèi)存是10G。當(dāng)然,如果數(shù)據(jù)庫(kù)很大甚至到達(dá)TB級(jí)的話應(yīng)該分配為數(shù)據(jù)庫(kù)大小的5%到10%左右。
5.在64位SQL Server中可能大家覺(jué)得啟用'激活awe標(biāo)志'沒(méi)有什么用了,因?yàn)闆](méi)有4G的限制了。其實(shí)還是有用的,啟用'激活awe標(biāo)志'可以保證為SQL Server分配的內(nèi)存不可切換,早期SQL Server版本中參數(shù)'設(shè)置工作集大小'指示SQL Server內(nèi)存不可切換,現(xiàn)在這個(gè)標(biāo)志已經(jīng)取消。
6.不能讓SQL Server使用太多的內(nèi)存,可能導(dǎo)致Windows中的分頁(yè)問(wèn)題,要為操作系統(tǒng)留1G到2G的內(nèi)存。
7. 緩沖區(qū)高速緩存能解決一些I/O問(wèn)題,但是不會(huì)消除所有的I/O問(wèn)題!