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