相當(dāng)長一段時間以來,在64位平臺上運行sql server一直是提高數(shù)據(jù)庫性能和擴展性的一種選擇,不過配置方面的選項有限,而且不是沒有問題。舉例說,sql server 2000只能在昂貴的安騰系列處理器上面運行;而且sql server的客戶端工具與64位平臺不兼容。另一方面,sql server 2005卻提供了新的選項可以充分利用64位架構(gòu)的強大功能;而且完全沒有在過去導(dǎo)致人們不太需要64位的問題。
使用sql server的公司為什么應(yīng)當(dāng)改用64位架構(gòu)?
要解答這個問題,最重要的答案就是,64位平臺與32位系統(tǒng)相比,大大提高了內(nèi)存訪問能力。32位系統(tǒng)最多只能本地訪問4gb的內(nèi)存。32位的sql server系統(tǒng)使用地址窗口擴展(awe)及相關(guān)技術(shù)后,最多可以訪問64gb的內(nèi)存,不過地址虛擬技術(shù)帶來了開銷:awe需要創(chuàng)建虛擬“窗口”來訪問更高內(nèi)存。訪問高端內(nèi)存的每個請求都必須通過這個窗口進行,開銷要比請求訪問本地內(nèi)存大得多。因而,在高使用率情況下,訪問更大內(nèi)存的功能實際上妨礙了而不是有助于性能。此外,awe內(nèi)存只是被sql server用于緩沖器緩存,而不是用于過程緩存,而且不會有助于對利用許多即席查詢(ad-hoc query)的服務(wù)器進行優(yōu)化。awe內(nèi)存也不會被用于幫助內(nèi)存中的排序、散列連接(hash join)或者其他數(shù)據(jù)密集型操作。
如今的64位系統(tǒng)最多可本地訪問512gb的內(nèi)存。這意味著,性能不會受到地址窗口的影響,額外內(nèi)存可以供任何sql server緩存而不僅僅是緩沖器緩存使用。這種增加內(nèi)存的功能在許多情況下直接提高了性能。由于更多的數(shù)據(jù)保存在緩存里面,勢必會減少磁盤的i/o操作。你還會注意到使用中間排序、散列連接或者指針的查詢在性能上得到提高。所有這些在內(nèi)存里面進行求值要比換到磁盤上進行求值來得快。
為什么64位采用遲緩?
有人不由得會想:既然好處這么顯著,為什么到目前為止64位sql serve的采用似乎很遲緩?sql server 2000的64位選項很有限,因為sql server 2000惟一支持的64位配置就是安騰服務(wù)器運行在windows server 2003上面。也沒有哪個sql server 2000客戶端工具可在64位服務(wù)器上面運行,包括企業(yè)管理器、查詢分析器和sql profiler。連數(shù)據(jù)轉(zhuǎn)換服務(wù)(dts)軟件包也無法在64位服務(wù)器上運行,這意味著dts無法充分利用64位的更強功能。
sql server 2005 64位架構(gòu)有什么優(yōu)點?
sql server 2005為企業(yè)帶來了64位架構(gòu)的優(yōu)點,而與以往相比價位較低、功能較多。最重要的是,sql server 2005支持可以安裝在安騰和價格低得多的x64服務(wù)器兩種平臺上。所以,除了節(jié)省費用外,數(shù)據(jù)庫管理員現(xiàn)在就可以使用英特爾處理器或者amd處理器。
sql server 2005客戶端工具與64位服務(wù)器完全兼容,所有sql server支持服務(wù)都可以在64位配置環(huán)境下與sql server 2005一起使用,這包括:分析服務(wù)、sql server集成服務(wù)、報表服務(wù)和通知服務(wù)。所有這些服務(wù)都能夠利用訪問更多內(nèi)存的功能,有助于提高安裝的sql server的性能、滿足業(yè)務(wù)集成需求。
哪種安裝環(huán)境應(yīng)當(dāng)升級至64位?
升級主要有兩個市場:需要向上擴展的32位單服務(wù)器安裝環(huán)境;以及需要合并的32位多服務(wù)器安裝環(huán)境。每種場景都有明顯的優(yōu)點。
表明單服務(wù)器安裝配置可能屬于向上擴展類別的最明顯跡象就是,深度查詢磁盤活動、較低的緩沖器緩存命中率以及較短的頁面生命周期。所有這些問題都可以使用性能計數(shù)器來評估,可通過能夠訪問更多內(nèi)存的64位系統(tǒng)來加以解決。
另一方面,確定多服務(wù)器安裝環(huán)境是不是非常適合合并來得困難一點。應(yīng)當(dāng)進行認(rèn)真測試,評估所有數(shù)據(jù)庫總共需要多少內(nèi)存、處理器能不能處理所有數(shù)據(jù)庫的并發(fā)查詢、磁盤系統(tǒng)能不能處理同時讀寫帶來的更大壓力。做出這個決策比升級單一服務(wù)器困難得多,不過就整體的管理簡易性而言,會獲得巨大回報。
改用64位會在sql server的性能和擴展性方面帶來重大影響。sql server 2005提供的選項使得從32位進行升級合理得多。如果你投資新硬件用于新的數(shù)據(jù)庫管理系統(tǒng)(dbms),就應(yīng)當(dāng)調(diào)查分析64位選項,尤其是基于價格較低的x64位處理器的那些選項。
我要不要使用新的xml數(shù)據(jù)類型把所有xml數(shù)據(jù)保存在sql server 2005里面?
xml酷似clr用戶定義類型(udt),它現(xiàn)在是sql server 2005中新的第一類數(shù)據(jù)類型。開發(fā)人員現(xiàn)在可能會忍不住使用這種數(shù)據(jù)類型,以免編寫代碼把xml數(shù)據(jù)“分割”到表里面(即不是使用openxml往表里面批量載入數(shù)據(jù))。
遺憾的是,像這樣使用xml數(shù)據(jù)類型存在與使用用戶定義類型表示數(shù)據(jù)同樣的許多問題。開發(fā)人員應(yīng)當(dāng)把性能記在心頭,因為對xml列的一個節(jié)點進行查詢需要引擎對表中每一行的不同xml查詢進行求值。與使用clr udt一樣,還存在規(guī)范化問題。在過多使用xml數(shù)據(jù)類型的數(shù)據(jù)庫里面,要確保數(shù)據(jù)完整性極其困難。
新聞熱點
疑難解答
圖片精選