雖然SQL Server 2005標榜增加了琳瑯滿目的新功能,但最終還是得回到原點:SQL Server 2005的效能到底好不好?64位元是否真的有用?所以我們採用IBM x460伺服器作為測試平臺,透過實際的佈署與測試,檢視SQL Server 2005的真正效能。

事實證明,SQL Server 2005並沒有讓我們失望。

SQL Server 2005的32位元效能較優

經過實際的測試,整體而言,SQL Server 2005的效能的確明顯優於SQL Server 2000,尤其前者比較能有效率的利用多處理器環境與高容量的記憶體。我們使用一個由VB Script撰寫的壓力測試程式,比較同為32位元版本的測試過程,發現SQL Server 2005「聰明」的利用多餘記憶體空間,以及閒置中的處理器資源,尤其是針對超執行緒(HyperThreading)的最佳化,但SQL Server 2000卻需要經過繁雜的調校才會略有起色、緩慢的逐步使用超過4GB以上的記憶體空間。兩個版本相隔五年的技術差距,由此可見一斑。

以湊雜比對與匯總運算密集的合併表格查詢動作為例,32位元的SQL Server 2005執行時間僅有SQL Server 2000的40%,而且記憶體容量越高,效能差距就更明顯。

但是,由於SQL Server 2005的Management Studio提供更複雜的圖像化管理介面與系統資訊報表功能,在使用SQL Server 2005時,這些GUI繪圖動作都會「吃掉」不少系統資源,影響資料庫的實際效能。以我們所測試的5000萬筆資料來說,在未關閉報表功能時,大多數系統資源都花在匯出數千萬筆受影響資料欄位的工作上,反而真正最需要效能的資料庫動作,沒有被分配到應有的資源。所以,使用SQL Server 2005時,建議關閉不必要的GUI報表功能,將運算資源全部砸在刀口上。

64位元享有整體效能上的優勢

藉由相同的測試,我們實際比較過32位元與64位元SQL Server 2005的表現之後,64位元在整體效能上的壓倒性優勢,已經著無庸議。也許因耗用較多處理器資源與磁碟I/O之故,32位元的SQL Server 2005不見得可以勝過SQL Server 2000,但就算是磁碟I/O密集的測試,x64版本SQL Server 2005依舊享有明顯的優勢,更罔論可充分利用高容量記憶體的項目。以上述的合併表格查詢動作為例,64位元的所需時間僅有32位元的40%,相當驚人。

更重要的是,相較於SQL Server 2000與32位元版本SQL Server 2005,如果系統已經安裝了4GB以上的高容量記憶體、而且處理器支援64位元,導入64位元環境可以避免作業系統與SQL Server上啟動PAE模式的麻煩,省略繁雜的後繼調校動作,直接享受到高容量記憶體的好處。

為何64位元效能會比較優異?

在本次測試中,x64版本SQL Server 2005的效能表現,均遠遠超越32位元的SQL Server 2000與SQL Server 2005,主因就在於64位元的記憶體平面定址能力,擺脫32位元所造成的4GB虛擬定址空間限制。

不過,相較於64位元平面定址,這種權宜之計非常的沒有效率,實體記憶體雖然可達64GB,但是每個應用程式實際上只能使用到4GB的虛擬定址空間,尤其像大型資料庫、或是網站伺服器,會經常發生不規則存取大範圍記憶體的程式行為,降低處理器TLB與MMU的效能,導致記憶體存取效率不彰,影響伺服器應用。

64位元不保證一定比較快

不過,64位元是否就毫無效能上的負面影響?答案也是否定的,64位元不見得就一定會讓程式變快,因為64位元的指標(Pointer)和暫存器,多少會增加記憶體容量的需求與頻寬的壓力。事實上,幾乎所有的64位元處理器都提供32位元模式,也就是只使用32位元的暫存器和指標,這樣的設計一方面是提供對傳統32位元應用程式的相容性,而且在大量使用指標的時候,也可以減少記憶體的使用量。在記憶體和處理器相對速度越來越慢的情形下,這還是會有相當的影響。以處理器業界最具權威性的效能指標SPEC CPU 2000為例,很多處理器與伺服器廠商在進行64位元環境測試時,為了追求最好的表現,並不是每個項目都會編譯成64位元執行檔,其負面影響,由此可見一斑。另一個隱而不現的因素,就是往往64位元的整數邏輯運算器(ALU)效能都較32位元模式為差,這也會影響64位元應用程式的實際效能。

記憶體空間多多益善

不可否認的,對於資料庫應用來說,更大的記憶體容量確實可以有效降低磁碟I/O的壓力,多多益善實乃必然。我們曾經將IBM x460伺服器的記憶體從16GB增加至32GB、將測試用資料庫的筆數同樣加倍至1億筆,結果效能表現依然明顯優於16GB/5千萬筆資料的組態,足以證明記憶體容量的重要性。如果要採用64位元系統,更需要高容量的記憶體。

SQL Server 2005的升級與移轉評估

從舊版的SQL Server 升級到2005大致可分成兩種作法,一種是直接取代掉原有的資料庫,由新版本接手,另外一種是將舊版保留下來,和新版並存。可以升級的元件除了資料庫引擎及物件之外,也包含了全文檢索、系統工具等。另外如Analysis Services、Reporting Services、DTS封裝及通知服務等,也都可以在升級過程中一併轉換。

是否有採用4Gb FC SAN的必要?

近期4Gb FC SAN產品開始低價化,市面上也開始出現了入門級的產品,是否該導入4Gb FC SAN就成為值得重視的焦點。我們採用SilverSTOR Titan 6216S-F4D與Broadcade SilkWorm E205交換器,進行2Gb與4Gb FC SAN的效能測試,作業系統與SQL Server均為x64版本。為了達到最高的磁碟效能,我們建立由16臺硬碟所組成的RAID0分割區。

相關文章

全面解析SQL Server 2005(下)
SQL Server效能大評比
SQL Server 2005最佳佈署策略

全面解析SQL Server 2005(上)
扛起企業重資料,SQL Server 2005邁進企業級資料庫
開發篇-當SQL遇上.NET
管理篇-SQL Server 2005管理新世界為何64位元效能會比較優異?

在本次測試中,x64版本SQL Server 2005的效能表現,均遠遠超越32位元的SQL Server 2000與SQL Server 2005,主因就在於64位元的記憶體平面定址能力,擺脫32位元所造成的4GB虛擬定址空間限制。

雖然不少既有的32位元指令集,都有擴充實體定址空間的應急方案,例如英特爾從Pentium Pro開始提供的PSE/PAE-36延伸定址模式,透過作業系統建立位址轉換表格、將4GB虛擬空間對映至更大的實體空間,使處理器可以定址到相當於36位元的64GB實體記憶體,這也是本次測試中,32位元系統預設的模式。

不過,相較於64位元平面定址,這種權宜之計非常的沒有效率,實體記憶體雖然可達64GB,但是每個應用程式實際上只能使用到4GB的虛擬定址空間,尤其像大型資料庫、或是網站伺服器,會經常發生不規則存取大範圍記憶體的程式行為,降低處理器TLB與MMU的效能,導致記憶體存取效率不彰,影響伺服器應用。

所以,對於伺服器及工作站應用而言,記憶體定址空間加大有著立竿見影的好處,成為企業迫切的需求實無可厚非,而資料庫更是最需要高容量記憶體的企業應用。支援64位元x86處理器的SQL Server 2005-也許是Windows平臺上第一個64位元殺手級應用程式,只是這個趨勢的第一步。

對x86指令集處理器而言,AMD64/EM64T所能帶來的最大好處,還不只限於64位元的記憶體定址能力,而是在64位元模式下所新增的暫存器群(8個64位元「純」通用暫存器和8個128位元XMM暫存器)。
只要程式可以有效利用這些新增的暫存器,對於提升效能絕對有著立竿見影的效果,畢竟x86處理器苦於暫存器不足的問題,已經不是一天兩天的事情了。對於伺服器和工作站,超過4GB的記憶體平面定址空間,更是極為迫切的需求。

相關文章

全面解析SQL Server 2005(下)
SQL Server效能大評比
SQL Server 2005最佳佈署策略

全面解析SQL Server 2005(上)
扛起企業重資料,SQL Server 2005邁進企業級資料庫
開發篇-當SQL遇上.NET
管理篇-SQL Server 2005管理新世界64位元不保證一定比較快

不過,64位元是否就毫無效能上的負面影響?答案也是否定的,64位元不見得就一定會讓程式變快,因為64位元的指標(Pointer)和暫存器,多少會增加記憶體容量的需求與頻寬的壓力。事實上,幾乎所有的64位元處理器都提供32位元模式,也就是只使用32位元的暫存器和指標,這樣的設計一方面是提供對傳統32位元應用程式的相容性,而且在大量使用指標的時候,也可以減少記憶體的使用量。在記憶體和處理器相對速度越來越慢的情形下,這還是會有相當的影響。以處理器業界最具權威性的效能指標SPEC CPU 2000為例,很多處理器與伺服器廠商在進行64位元環境測試時,為了追求最好的表現,並不是每個項目都會編譯成64位元執行檔,其負面影響,由此可見一斑。另一個隱而不現的因素,就是往往64位元的整數邏輯運算器(ALU)效能都較32位元模式為差,這也會影響64位元應用程式的實際效能。

在我們本次的測試過程中,就曾遭遇到64位元效能較差的狀況。我們也分別比較32位元與64位元在壓力測試中的記憶體使用量,很明顯的,x64版本SQL Server 2005的記憶體使用量明顯高於32位元x86版本,如果採用64位元系統,建議安裝更大的記憶體,降低使用虛擬記憶體與存取磁碟系統的機率。值得注意的是,如果企業採用的是Itanium版本,記憶體需求將會更高,因為IA-64指令集的指令碼密度(code density)是遠低於x86指令集的。

因為我們這次採用的IBM x460伺服器X3架構擁有相當頂級的記憶體效能,所以這個現象並不明顯,但對於其他的伺服器來說,可能就不會這麼好運了。所以,千萬不要以為64位元就一定可以帶來更好的效能,從此高枕無憂。在採用64位元SQL Server 2005時,依舊需要細心調校與規畫系統,以徹底發揮64位元的價值。

相關文章

全面解析SQL Server 2005(下)
SQL Server效能大評比
SQL Server 2005最佳佈署策略

全面解析SQL Server 2005(上)
扛起企業重資料,SQL Server 2005邁進企業級資料庫
開發篇-當SQL遇上.NET
管理篇-SQL Server 2005管理新世界記憶體空間多多益善

不可否認的,對於資料庫應用來說,更大的記憶體容量確實可以有效降低磁碟I/O的壓力,多多益善實乃必然。我們曾經將IBM x460伺服器的記憶體從16GB增加至32GB、將測試用資料庫的筆數同樣加倍至1億筆,結果效能表現依然明顯優於16GB/5千萬筆資料的組態,足以證明記憶體容量的重要性。如果要採用64位元系統,更需要高容量的記憶體。

但是,高容量記憶體自然也會衍生出記憶體資料可靠性的議題。如果缺乏完善的記憶體資料可靠性功能,如ChipKill、記憶體鏡像備份(Memory Mirroring)、記憶體模組熱備援(Memory Sparing)或記憶體RAID(Memory RAID),在記憶體密度與時脈節節高升的今天,就會承受更大的風險,值得注意。

此外,雖然我們的測試平臺已經搭配了高效能的儲存系統,採用了4臺2.5吋萬轉SAS硬碟(3臺組成RAID5,再加上1臺作為熱備援)與內建256MB快取記憶體的IBM ServerRAID 8i SAS磁碟陣列控制卡,但在實際測試中,依舊比不過外接的2Gb FC SAN--雖然SAS號稱擁有「300MB/s的點對點頻寬」,但仍然無法彌補硬碟數量的差距。

相關文章

全面解析SQL Server 2005(下)
SQL Server效能大評比
SQL Server 2005最佳佈署策略

全面解析SQL Server 2005(上)
扛起企業重資料,SQL Server 2005邁進企業級資料庫
開發篇-當SQL遇上.NET
管理篇-SQL Server 2005管理新世界SQL Server 2005的升級與移轉評估

從舊版的SQL Server 升級到2005大致可分成兩種作法,一種是直接取代掉原有的資料庫,由新版本接手,另外一種是將舊版保留下來,和新版並存。可以升級的元件除了資料庫引擎及物件之外,也包含了全文檢索、系統工具等。另外如Analysis Services、Reporting Services、DTS封裝及通知服務等,也都可以在升級過程中一併轉換。

升級可以透過安裝動作直接升級,資料也會自動轉換到新的資料庫中,而且使用原來的執行個體名稱,對原來系統架構影響較小,作業過程也比較快速,不過資料庫管理員可調整的部份就比較少,而且資料庫在升級過程中會有關閉和啟動的動作,必須中斷服務一段時間。此外,也不是所有的物件都能透過升級平移過去,像是Analysis Services的Cube,使用移轉的方式才能獲致較好的結果。

移轉則是在系統上執行新的安裝,完成之後再將資料庫複製到新系統,過程中比較需要比較多的手動作業,但相對來說,也多了可驗證、測試和調整的空間。利用移轉好處在於服務不打祥,移轉過程中原有的執行個體仍能持續運作。不過移轉完成後,由於名稱不同,原有的應用程式必須設定導向新到SQL Server 2005。可以升級到SQL Server 2005的舊有版本有SQL Server 7和2000,在升級前必須要先上到最新的Service Pack才能順利進行。升級時也必須注意到一些前置條件,才能保證過程順暢,例如企業版升級必須對應的企業版,語系版本之間最好也一致,尤其是非英語系的版本是無法升級成英語系,但是相反的話則可以。要進行升級或移轉前,可先用Upgrade Advisor評估轉換情況,以避免升級後發生無法使用的狀況。文⊙劉人豪

相關文章

全面解析SQL Server 2005(下)
SQL Server效能大評比
SQL Server 2005最佳佈署策略

全面解析SQL Server 2005(上)
扛起企業重資料,SQL Server 2005邁進企業級資料庫
開發篇-當SQL遇上.NET
管理篇-SQL Server 2005管理新世界是否有採用4Gb FC SAN的必要?

近期4Gb FC SAN產品開始低價化,市面上也開始出現了入門級的產品,是否該導入4Gb FC SAN就成為值得重視的焦點。我們採用SilverSTOR Titan 6216S-F4D與Broadcade SilkWorm E205交換器,進行2Gb與4Gb FC SAN的效能測試,作業系統與SQL Server均為x64版本。為了達到最高的磁碟效能,我們建立由16臺硬碟所組成的RAID0分割區。

我們刪除資料庫5000萬筆資料中的3000萬筆,以確保可以實際測試磁碟系統的效能。測試結果顯示,4Gb FC SAN的效能的確優於2Gb FC SAN,但領先幅度仍相當有限。如果企業預算有限,是否要採用4Gb FC SAN,值得斟酌。

但無論是否採用何種規格,FC SAN的效率依舊遠勝過內接式的SAS RAID。另外,值得注意的是,由於SQL Server 2005的資料庫暫存檔相當消耗磁碟空間,加重磁碟效能的負擔,將資料庫暫存檔置於外接的SAN儲存系統,就可以改進效能。所以如果預算許可,採用SAN儲存系統的確是比較好的方案。文⊙劉人豪

相關文章

全面解析SQL Server 2005(下)
SQL Server效能大評比
SQL Server 2005最佳佈署策略

全面解析SQL Server 2005(上)
扛起企業重資料,SQL Server 2005邁進企業級資料庫
開發篇-當SQL遇上.NET
管理篇-SQL Server 2005管理新世界

熱門新聞

Advertisement