>  Introduction  在這篇專(zhuān)欄里,我們將從開(kāi)發(fā)者的角度來(lái)探討SQLServer內(nèi)存管理內(nèi)幕。就是說(shuō),我們將討論SQLServer使用API和操作系統(tǒng)功能管理內(nèi)存的方式及其工作原理。通過(guò)這">
sql server 2000內(nèi)存管理內(nèi)幕--

sql server 2000內(nèi)存管理內(nèi)幕--

ID:9511776

大?。?8.00 KB

頁(yè)數(shù):9頁(yè)

時(shí)間:2018-05-02

sql server 2000內(nèi)存管理內(nèi)幕--_第1頁(yè)
sql server 2000內(nèi)存管理內(nèi)幕--_第2頁(yè)
sql server 2000內(nèi)存管理內(nèi)幕--_第3頁(yè)
sql server 2000內(nèi)存管理內(nèi)幕--_第4頁(yè)
sql server 2000內(nèi)存管理內(nèi)幕--_第5頁(yè)
資源描述:

《sql server 2000內(nèi)存管理內(nèi)幕--》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)

1、SQLServer2000內(nèi)存管理內(nèi)幕>>  Introduction  在這篇專(zhuān)欄里,我們將從開(kāi)發(fā)者的角度來(lái)探討SQLServer內(nèi)存管理內(nèi)幕。就是說(shuō),我們將討論SQLServer使用API和操作系統(tǒng)功能管理內(nèi)存的方式及其工作原理。通過(guò)這種方式探討一個(gè)產(chǎn)品,將有助于我們理解產(chǎn)品開(kāi)發(fā)者的思路,以及他們所設(shè)計(jì)的使用方法。理解一個(gè)產(chǎn)品的工作原理和它的設(shè)計(jì)用途,是掌握這個(gè)產(chǎn)品的關(guān)鍵。  我們將從一些基礎(chǔ)的emory  在x86系列處理器上,內(nèi)存的系統(tǒng)上,每個(gè)應(yīng)用程序都有一個(gè)4GB的虛擬內(nèi)存地址空間--它不是真正的內(nèi)存,但對(duì)應(yīng)用程序來(lái)說(shuō)可

2、以理解為內(nèi)存。emoryTuning  3GB啟動(dòng)選項(xiàng)(emoryTuning。通常情況下,人們通過(guò)設(shè)置BOOT.INI文件的[OperatingSystems]部分,將系統(tǒng)配置為可以使用3GB或者不使用3GB啟動(dòng),以使在系統(tǒng)啟動(dòng)時(shí)可以進(jìn)行選擇?! 【妫耗阋部梢栽趏de的空間。換句話(huà)說(shuō),你減小了kernalmode的空間但并沒(méi)有獲得任何好處?! ∽⒁猓篸oe配置2.5G的空間,剩余的1.5G用于kernalmode。上面的警告信息在使用/USERVA選項(xiàng)時(shí)同樣適用?! arge-Address-Aode的應(yīng)用程序只能夠?qū)?2位

3、指針的前31位表示的地址空間進(jìn)行存取。對(duì)于剩下的1位,一些聰明的開(kāi)發(fā)者不希望浪費(fèi)進(jìn)程空間里的這1個(gè)位,把它用于了其它的目的,例如用于標(biāo)識(shí)那些應(yīng)用程序特定的地址分配類(lèi)型的指針。這在引入/3GB后帶來(lái)一個(gè)難題,因?yàn)檫@種類(lèi)型的應(yīng)用程序無(wú)法區(qū)分引用2GB以上內(nèi)存的指針,和那些引用2GB以下內(nèi)存但是最高位由于其它原因而被設(shè)置的指針。基本上,使用/3GB啟動(dòng)機(jī)器,會(huì)使這樣的應(yīng)用程序崩潰。為了解決這個(gè)問(wèn)題,微軟在pBin、ImageCfg等可以分析可執(zhí)行文件頭的工具,查看應(yīng)用程序是否啟用了這個(gè)標(biāo)識(shí)位。VisualC++通過(guò)/LARG1234下一

4、頁(yè)>>>>這篇文章來(lái)自..,。EADDRESSAAGE_FILE_LARGE_ADDRESS_AemoryManagementUnit-MMU)仍然實(shí)現(xiàn)了頁(yè)目錄條目(PageDirectoryEntries-PDEs)和頁(yè)表?xiàng)l目(PageTableEntries-PTEs),但是在這個(gè)之上有一個(gè)新的層級(jí):頁(yè)目錄指針表(PageDirectoryPointerTable)。PAE模式下系統(tǒng)能夠?qū)ぶ犯蟮膬?nèi)存,因?yàn)镻DEs和PTEs為64位寬,是之前標(biāo)準(zhǔn)寬度的兩倍,而并不是通過(guò)PAE模式下的頁(yè)目錄指針表實(shí)現(xiàn)。頁(yè)目錄指針表把這些高存儲(chǔ)容

5、量的表和索引管理起來(lái)。使用PAE模式需要一個(gè)特殊版本的apUserPhysicalPages或者M(jìn)apUserPhysicalPagesScatterAPI函數(shù),將需要存取的物理內(nèi)存映射到這個(gè)虛擬內(nèi)存窗口中?! n等,都無(wú)法顯示各個(gè)進(jìn)程Aode的地址空間,kernalmode地址空間也由2GB被壓縮到1GB。對(duì)于kernalmode代碼,完整2GB的工作空間已經(jīng)顯得狹窄,壓縮這部分空間意味著某些內(nèi)部核心結(jié)構(gòu)也必須要壓縮。這些結(jié)構(gòu)中主要有機(jī)器上用于管理內(nèi)存的表窗口(tableWindoode部分壓縮到1GB后,這個(gè)表最大就只能管理

6、16GB的物理內(nèi)存了。例如你在一臺(tái)具有64GB物理內(nèi)存的機(jī)器上運(yùn)行Windows2000DataCenter,啟動(dòng)時(shí)使用了/3GB選項(xiàng),你就只能夠存取這臺(tái)機(jī)器25%的內(nèi)存,剩余的48BG將無(wú)法被操作系統(tǒng)和應(yīng)用程序使用。AWE允許你訪(fǎng)問(wèn)超過(guò)3GB的內(nèi)存,而通過(guò)/3GB,你僅僅為私有進(jìn)程空間獲得額外的1GB。LargeAddressAware自動(dòng)透明的使得這個(gè)額外空間對(duì)應(yīng)用程序可用,但它被限制在1GB之內(nèi)。理論上,AWE通過(guò)Win32AWEAPI函數(shù),使得所有對(duì)操作系統(tǒng)可用的物理內(nèi)存對(duì)應(yīng)用程序可用。盡管AWE更難于使用和存取,但它更具

7、彈性和擴(kuò)展?! 〔⒉皇钦f(shuō)任何情況下AWE都比/3GB好,只是通常狀況下是這樣。比如說(shuō)當(dāng)你需要很多空間以分配內(nèi)存,而又不能放在AWE內(nèi)存中(例如象線(xiàn)程棧Th上一頁(yè)1234下一頁(yè)>>>>這篇文章來(lái)自..,。readStacks、鎖內(nèi)存LockMemory、存儲(chǔ)過(guò)程計(jì)劃ProcedurePlans等),你也許會(huì)發(fā)現(xiàn)/3GB更合適?! emoryRegions  SQLServer將分配的內(nèi)存組織成兩個(gè)獨(dú)立的區(qū)域:BPool和MemToLeave。實(shí)際上如果你使用AemToLeave區(qū)域被保留,這有利于防止BPool隨后的預(yù)留造成內(nèi)存碎

8、片。接下來(lái),BPool被保留,它可以分成多達(dá)32個(gè)獨(dú)立預(yù)留塊,用于滿(mǎn)足在BPool保留時(shí)SQLServer進(jìn)程中那些正在請(qǐng)求虛擬地址空間的dll及其它分配請(qǐng)求。在保留BPool區(qū)域之后,MemToLeave區(qū)域被釋放。MemToLeave用于SQL

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。