SQLSERVER中的AWE功能
SQLSERVER中的AWE功能
由于32位Windows用戶進(jìn)程有4GB的虛擬地址空間。其中2GB給核心態(tài),剩下2GB給用戶態(tài)。這兩部分嚴(yán)格分開。Windows不會(huì)因?yàn)槠渲心骋粔K
內(nèi)存地址空間用盡而將另外一塊的空間讓出。
由于SQLSERVER的絕大部分指令都運(yùn)行在用戶態(tài)下,就是說SQLSERVER的內(nèi)存基本上使用用戶態(tài)地址空間資源?,F(xiàn)在的情況是2GB地址空間資源
對(duì)于SQLSERVER來說嚴(yán)重阻礙了SQLSERVER有效利用硬件資源
所以SQLSERVER引入了AWE address windowsing extensions(地址空間擴(kuò)展)。這是允許32位應(yīng)用程序分配64GB物理內(nèi)存,并把視圖或窗口
映射到2GB虛擬地址空間的機(jī)制。
使用AWE,使得一個(gè)應(yīng)用程序能夠訪問最多達(dá)64GB的物理內(nèi)存!?。?/strong>
在SQL2000的企業(yè)版,SQL2005/2008的企業(yè)版和標(biāo)準(zhǔn)版都支持這個(gè)技術(shù),也能夠享受這個(gè)技術(shù)帶來的好處
開啟這個(gè)功能的語句,執(zhí)行完之后,重啟SQLSERVER服務(wù)即可
1 EXEC sys.sp_configure @configname = 'AWE Enabled', -- varchar(35) 2 @configvalue = 1 -- int 3 RECONFIGURE 4 GO
AWE具體實(shí)現(xiàn)圖
有幾點(diǎn)需要注意的:
(1)開啟這個(gè)功能需要SQLSERVER啟動(dòng)帳戶在Windows上的lock pages in memory權(quán)限。沒有這個(gè)權(quán)限,AWE就不能成功被開啟。
啟動(dòng)的SQLSERVER這時(shí)候只能使用2GB的地址空間。
所以DBA要確認(rèn)一下SQLSERVER的errorlog里有沒有相關(guān)的信息
成功開啟:server Address Windowing Extensions enabled
消息
Address Windowing Extensions is enabled. This is an informational message only; no user action is required.
開啟失?。篊annot use Address Windowing Extensions because lock memory privilege was not granted
(2)這個(gè)功能是在應(yīng)用層面有意識(shí)地使用,而不是在Windows層面實(shí)施的。也就是說SQLSERVER在申請(qǐng)內(nèi)存時(shí),通過特殊API調(diào)用申請(qǐng)到的,
如果SQLSERVER不調(diào)用這個(gè)功能,就還會(huì)在普通的2GB虛擬地址空間申請(qǐng)內(nèi)存。在SQLSERVER中不是所有的內(nèi)存申請(qǐng)都會(huì)調(diào)用AWE技術(shù),
只有先reserve,再commit的內(nèi)存調(diào)用,SQLSERVER才使用AWE讓他們使用到擴(kuò)展的內(nèi)存。其他方式申請(qǐng)的內(nèi)存只能使用普通的2GB地址空間。
正因?yàn)檫@樣,AWE不能稱為解決SQLSERVER地址空間不足的最終解決方案。使用64位的服務(wù)器,虛擬地址空間可以達(dá)到8TB,
大于現(xiàn)在絕大多數(shù)的單個(gè)服務(wù)器的物理內(nèi)存數(shù)。在64位下運(yùn)行的SQLSERVER,其性能往往比在32位上有比較明顯的提高。
最后附上各個(gè)版本W(wǎng)indows上支持的最大內(nèi)存數(shù)
配置 應(yīng)用虛擬地址空間大小 最大物理內(nèi)存數(shù) 是否支持AWE/locked pages support
32位SQLSERVER 2GB 64GBYES
32位SQLSERVER + /3GB boot.ini參數(shù) 3GB 16GBYES
32位SQLSERVER應(yīng)用在x64位操作系統(tǒng)(WOW) 4GB 64GB YES
32位SQLSERVER應(yīng)用在IA64操作系統(tǒng)(WOW) 2GB 2GB NO
64位SQLSERVER應(yīng)用在x64操作系統(tǒng) 8TB2TBYES
64位SQLSERVER應(yīng)用在IA64操作系統(tǒng) 7TB 2TB YES
總結(jié)
以上是生活随笔為你收集整理的SQLSERVER中的AWE功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据经典论文——Paxos 《Paxo
- 下一篇: 轻量级MVVM框架Stylet介绍:(1