很多人關心的和擔心的都是 SQL Server 2005 相對它的前版本SQL Server 2000所做的重大改進或新增功能。在我升級到SQL2005之後,不得不說的:你也值得擁有。(套用一句廣告語,呵呵)
我總結了一下個人認為SQL Server 2005 中最值得你為之升級的10 個理由。無論你是想了解或學習SQL Server 2005,還是正在評估或考慮升級到SQL Server 2005,我相信當時你看完這篇帖子一定會對你的決定起到參考作用。
升級理由一:數據分區
只有到了2005 版本SQL Server才擁有了真正的表和索引數據分區技術。這個技術一下子使SQL Server數據庫從“青壯年”成長為成熟的企業級數據庫產品,是一個裡程碑性質的標志。數據分區技術極大加強了表的可伸縮性和可管理性,使得SQLServer 處理海量數據的能力有了質的飛躍,是我認為最值得升級的一個理由。
升級理由二:可編程性
CLR 集成
SQL Server 2005的可編程性是值得升級的第二個重要理由。從來沒有哪一個版本能像SQL Server 2005 這樣帶來這麼多編程方面的變革。說老實話,在我知道的瞬間我是驚呆了。有些變化是革命性的。如CLR(Common Language Runtime,公共語言運行時)集成。你可以輕松利用.Net語言的優勢如其面向對象的封裝、繼承和多態特性,編寫出那些需要對數據進行復雜數值計算或邏輯的代碼,如字符串處理,數據加密算法,XML數據操作等等。你現在需要的僅僅是考慮什麼時候使用T-SQL 語言,什麼時候使用CLR。我猜測那些SQL Server軟件開發商幾乎會立即升級到SQLServer 2005 享受數據庫編程的便捷。
T-SQL 語言增強
SQL Server 2005 中的T-SQL語言有了非常大的改進。其中筆者最為稱道的是現在可以使用和C++或C#類似的TRYCATCH結構對T-SQL 進行錯誤處理了,大大簡化了T-SQL錯誤處理編程。估計很多T-SQL語言使用者可能就為了這個TRY-CATCH 結構而迫不及待地升級到SQL Server 2005。
升級理由三:安全
SQL Server 2005 的安全功能是我認為值得升級的第三個理由。SQL Server 2005 的安全達到了前所未有的強大水平,有著比以前版本更清晰的安全模型即主體,安全對象和權限。
如果你需要保護數據庫中的敏感數據,那麼SQL Server2005 中的數據加密功能絕對值得考慮。以前不止一次有客戶問我如何加密數據庫中的某些數據,是否可以使用一些內部不公開的函數如PWDENCRYPT加密數據。我的回答是使用Windows的EFS(加密文件系統)功能加密數據庫文件或在應用程序層對數據加密後再存儲。現在用戶期盼已久的數據加密功能終於在SQL Server 2005 中得到實現,那些有機密數據需要保護的用戶值得高興了。SQL Server 2005不是簡單的提供一些加密函數,而是把市場上已經成熟的數據安全技術引進到數據庫中,有一個清晰的加密層次結構。SQL Server 2005 支持證書(certificate),非對稱密鑰和對稱密鑰算法,一是防止敏感數據被洩漏,二是防止數據被篡改。對稱密鑰支持RC4,RC2,TripleDES 和AES算法,而非對稱密鑰使用RSA 算法。證書其實就是非對稱密鑰中公鑰的容器。密鑰管理是安全中比較弱的部分。SQL Server 2005 每一層都使用證書、非對稱密鑰和對稱密鑰的組合對它下面的一層進行加密,提高了密鑰安全性。出於性能考慮,一般不用加密強度大的非對稱密鑰或證書直接加密數據,而是使用對稱密鑰加密數據獲得較快的性能,然後使用證書或非對稱密鑰加密對稱密鑰。
升級理由四:快照隔離
你還在為系統出現的阻塞(blocking)或死鎖(deadlock)現象苦惱嗎?快試試SQL Server 2005 中的快照隔離吧。通過行版本(row versioning)控制技術,SQL Server 2005 除了原來支持的四種事務隔離級別(髒讀、提交讀、可重復讀、可串行讀)外新增了一個快照(SNAPSHOT)隔離級別,有可能使阻塞或死鎖成為歷史。SQL Server在TEMPDB中存放不同版本的數據行,select 語句讀取這些不同版本的行,讀操作不阻塞寫數據,寫操作也不阻塞讀操作,這樣那些由於讀/ 寫爭用導致的大量死鎖的系統將從中獲得無窮益處。如果你的系統復雜難優化,那麼升級到SQL Server 2005 試試快照隔離級別,也許會有意想不到的效果。
SQL Server 2005中的快照隔離可細分為兩種即READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION。建議大家多使用前者,因為已提交讀隔離可用於大多數現有應用程序,而不需要進行任何更改,其占用的TEMPDB空間也少。可以預見如果使用快照隔離級別,那麼需要特別關注TEMPDB的大小和性能。你也許需要把TEMPDB放在有足夠空間的單獨磁盤上以提高性能。
考慮到快照隔離在避免阻塞和死鎖方面的作用,我把它作為升級的第四個理由。
升級理由五:數據庫鏡像
對於那些要求高可用性的用戶來說,數據庫鏡像也許是考慮升級的唯一理由。SQL Server 2005的前版本在高可用性方面提供了故障轉移群集(Failover Cluster)和Log shipping方案。群集方案的一個好處是在一台機器發生問題時它可以提供極快的故障轉移能力,在備份服務器上聯機數據庫,應用程序只需重新連接即可。群集方案的一個缺點是數據庫放在共享盤上,有單點失效這個缺點,一旦共享盤失敗將導致整個系統崩潰。所以群集方案一般都要結合嚴緊的備份方案一起使用。而logshipping系統有一個時間上的延遲,且如果日志備份很大,傳送速度也是個問題。SQL Server 2005引入的數據庫鏡像可作為故障轉移群集或Log shipping 的替代或補充方案來提高數據庫的高可用性。鏡像的主要優點是它比前兩者更容易管理,沒有群集的單點失效缺點,也沒有log shipping 的時間延遲。鏡像服務器可以放在很遠的地方,提高了作為備份服務器的高可用性。