偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

升級(jí)到SQL Server 2005的理由有哪些?

數(shù)據(jù)庫 SQL Server
以下的文章主要向大家講述的是升級(jí)到SQL Server 2005 的10個(gè)可以通過的理由,以下就是對其相關(guān)內(nèi)容的詳細(xì)描述。

我們今天主要向大家講述的是升級(jí)到SQL Server 2005 的10個(gè)理由,本文主要是從用戶關(guān)心的技術(shù)要點(diǎn)出發(fā)比較與對SQL Server 2005 的討論,相對它的前版本SQL Server 2000所做的重大改進(jìn)或新增功能,介紹了SQL Server 2005 中最值得你為之升級(jí)的10 個(gè)理由。

無論你是想了解或?qū)W習(xí)SQL Server 2005,還是正在評(píng)估或考慮升級(jí)到SQL Server 2005,本文都將對您有很好的參考作用。

升級(jí)理由一:數(shù)據(jù)分區(qū)

只有到了2005 版本SQL Server才擁有了真正的表和索引數(shù)據(jù)分區(qū)技術(shù)。這個(gè)技術(shù)一下子使SQL Server數(shù)據(jù)庫從“青壯年”成長為成熟的企業(yè)級(jí)數(shù)據(jù)庫產(chǎn)品,是一個(gè)里程碑性質(zhì)的標(biāo)志。數(shù)據(jù)分區(qū)技術(shù)極大加強(qiáng)了表的可伸縮性和可管理性,使得SQLServer 處理海量數(shù)據(jù)的能力有了質(zhì)的飛躍,是我認(rèn)為最值得升級(jí)的一個(gè)理由。

數(shù)據(jù)庫隨著硬件和業(yè)務(wù)的發(fā)展變得越來越大。五年前大多數(shù)數(shù)據(jù)庫還不過是十幾個(gè)GB大小,很少超過TB級(jí)別的?,F(xiàn)在幾百個(gè)GB大小的數(shù)據(jù)庫系統(tǒng)隨處可見。如果沒有數(shù)據(jù)分區(qū)技術(shù)而想對大數(shù)據(jù)庫進(jìn)行高效管理是很困難的。SQL Server 2005以前版本的一個(gè)問題是隨著時(shí)間的推移數(shù)據(jù)庫越來越大,備份需要的空間越來越多,如何處理數(shù)據(jù)庫中的歷史數(shù)據(jù)是很棘手的事情。

有些客戶可能會(huì)使用DELETE語句定期定量刪除大表中的歷史記錄,如在每個(gè)周末備份數(shù)據(jù)庫后刪除一個(gè)星期以前的所有數(shù)據(jù)。但是如果表有上千萬行十幾個(gè)GB 大小,那么使用DELETE語句刪除數(shù)據(jù)庫中上萬行或高達(dá)20%數(shù)據(jù)的話,其性能很差。如果是在7 × 24小時(shí)運(yùn)行的聯(lián)機(jī)系統(tǒng)做這樣的數(shù)據(jù)維護(hù)操作那么還會(huì)引起比較嚴(yán)重的阻塞問題。

另外有些客戶針對這個(gè)問題直接在方案設(shè)計(jì)上下功夫,比如按照年份月份星期設(shè)計(jì)表,然后定期把一些過時(shí)的歷史數(shù)據(jù)表(注意是“表”)備份并DROP掉,使得數(shù)據(jù)庫大小以及系統(tǒng)性能都能保持相對穩(wěn)定。但是這種方法有一個(gè)弊端,即應(yīng)用程序必須做相應(yīng)的配合根據(jù)不同的時(shí)間訪問對應(yīng)的表,增加了數(shù)據(jù)庫管理以及數(shù)據(jù)庫訪問邏輯的復(fù)雜性。

大表還容易帶來性能問題。你也許會(huì)想到SQL Server 2000中的本地分區(qū)視圖或分布式分區(qū)視圖技術(shù)。是的,SQL Server2000 中的確已經(jīng)有分區(qū)視圖的概念,從SQL Server 7.0開始就有了。可惜分區(qū)視圖的一個(gè)令人討厭的地方是其管理、設(shè)計(jì)和開發(fā)比較困難,特別是分布式分區(qū)視圖。如如何更新分布式視圖就是個(gè)難題。所以盡管一個(gè)設(shè)計(jì)良好的分區(qū)視圖系統(tǒng)會(huì)有很不錯(cuò)的性能改善,卻因?yàn)榉爆嵉呐渲?,管理和開發(fā)使得其沒有在實(shí)際中得到充分應(yīng)用。

現(xiàn)在,SQL Server 2005 引入了真正的數(shù)據(jù)水平分區(qū)技術(shù),上面討論的數(shù)據(jù)庫增長問題和性能問題就迎刃而解。這個(gè)進(jìn)步絕對不是一小步。數(shù)據(jù)庫的大小不再是個(gè)問題。你可以根據(jù)字段值的范圍將表和索引劃分為多個(gè)分區(qū)從而可以輕松管理一個(gè)幾個(gè)TB大小的數(shù)據(jù)庫系統(tǒng)。無論數(shù)據(jù)如何增長,你都可以使用分區(qū)技術(shù)使得數(shù)據(jù)庫大小保持相對穩(wěn)定。其中特別值得稱贊的地方是SQL Server 2005 中分區(qū)的管理和使用非常簡單。

分區(qū)的刪除,添加,拆分、合并和移動(dòng),以及分區(qū)的數(shù)據(jù)裝載等管理都非常容易。你可以對單獨(dú)的分區(qū)進(jìn)行維護(hù)而不是整個(gè)表。如果你需要大量裝載數(shù)據(jù),那么你可以先把數(shù)據(jù)并行的裝入到一個(gè)新分區(qū)當(dāng)中,建立索引,然后把該分區(qū)合并到當(dāng)前分區(qū)中來。這個(gè)動(dòng)作需要的時(shí)間極短。

如果你需要?jiǎng)h除歷史數(shù)據(jù),假設(shè)你已經(jīng)設(shè)計(jì)好了歷史數(shù)據(jù)分區(qū),那么你僅僅需要把該分區(qū)移除即可,幾乎可以一瞬間完成。分區(qū)也使得大型表的并發(fā)訪問性能得到改善,特別是有多個(gè)CPU的數(shù)據(jù)庫系統(tǒng)。那些需要交叉訪問大量數(shù)據(jù)的查詢將從分區(qū)技術(shù)中獲益不少。

升級(jí)理由二:可編程性

 

CLR 集成

SQL Server 2005的可編程性是值得升級(jí)的第二個(gè)重要理由。從來沒有哪一個(gè)版本能像SQL Server 2005 這樣帶來這么多編程方面的變革。說老實(shí)話,在我知道的瞬間我是驚呆了。有些變化是革命性的。如CLR(Common Language Runtime,公共語言運(yùn)行時(shí))集成。

就先說說CLR集成。CLR集成是指你可以使用任何一種.NET 語言編寫SQL Server 2005 的存儲(chǔ)過程,觸發(fā)器,函數(shù),自定義類型,甚至是自定義的聚合函數(shù)。估計(jì)不少數(shù)據(jù)庫軟件開發(fā)商會(huì)為這個(gè)功能歡呼雀躍。想想以前的擴(kuò)展存儲(chǔ)過程,編程非常不容易。

代碼中一不小心就會(huì)引起內(nèi)存泄漏。而且由于擴(kuò)展存儲(chǔ)過程運(yùn)行在SQL Server 的進(jìn)程空間中,不好的代碼容易引起訪問違規(guī)(Access Violation)導(dǎo)致SQLServer 異常。

現(xiàn)在有了CLR 集成,你可以輕松利用.NET語言的優(yōu)勢如其面向?qū)ο蟮姆庋b、繼承和多態(tài)特性,編寫出那些需要對數(shù)據(jù)進(jìn)行復(fù)雜數(shù)值計(jì)算或邏輯的代碼,如字符串處理,數(shù)據(jù)加密算法,XML數(shù)據(jù)操作等等。由于CLR代碼宿于SQL Server進(jìn)程,你可以非常容易訪問數(shù)據(jù)庫中的數(shù)據(jù)。

有了CLR,你不再局限于T-SQL,你現(xiàn)在立即擁有了.NET 框架類庫提供的各種各樣的類和例程,以及.NET語言提供的一致的編程模型,如錯(cuò)誤處理。展現(xiàn)在你面前的是一個(gè)可以無限擴(kuò)展的編程空間。你現(xiàn)在需要的僅僅是考慮什么時(shí)候使用T-SQL 語言,什么時(shí)候使用CLR。我猜測那些SQL Server軟件開發(fā)商幾乎會(huì)立即升級(jí)到SQLServer 2005 享受數(shù)據(jù)庫編程的便捷。

T-SQL 語言增強(qiáng)

SQL Server 2005 中的T-SQL語言有了非常大的改進(jìn)。其中筆者最為稱道的是現(xiàn)在可以使用和C++或C#類似的TRYCATCH結(jié)構(gòu)對T-SQL 進(jìn)行錯(cuò)誤處理了,大大簡化了T-SQL錯(cuò)誤處理編程。SQL Server 2005以前的版本通過設(shè)置@@error變量表示最后的T-SQL 語句執(zhí)行成功與否。

為避免@@error變量被新執(zhí)行的語句重置,你必須為每一條可能出錯(cuò)的TSQL語句后面立即檢查或保存@@error變量的值,并使用相應(yīng)的G O T O 語句進(jìn)行跳轉(zhuǎn),使得代碼變得復(fù)雜難讀?,F(xiàn)在SQLServer 2005 有了TRY-CATCH結(jié)構(gòu)你只需要把相關(guān)的一組語句放在TRY塊里面即可。

如果TRY塊里面任何語句發(fā)生錯(cuò)誤,就會(huì)執(zhí)行相應(yīng)的CATCH 塊。你甚至可以使用嵌套的TRYCATCH來實(shí)現(xiàn)復(fù)雜錯(cuò)誤處理流程。估計(jì)很多T-SQL語言使用者可能就為了這個(gè)TRY-CATCH 結(jié)構(gòu)而迫不及待地升級(jí)到SQL Server 2005。

除了傳統(tǒng)的DML(INSERT/UPDATE/DELETE)觸發(fā)器,SQL Server 2005 現(xiàn)在也可以對DDL 語言(CREATE、ALTER或DROP 開頭的語句)創(chuàng)建觸發(fā)器了。這對于那些需要對DDL語言執(zhí)行管理任務(wù)如審核以及規(guī)范數(shù)據(jù)庫操作的用戶特別有用。以前很多客戶問我如何跟蹤或避免表的刪除操作,現(xiàn)在終于有了答案。你可以簡單建立一個(gè)針對DROP 語句的觸發(fā)器然后在觸發(fā)器里面ROLLBACK 事務(wù)就可以回滾DROP 動(dòng)作了。

SQL Server 2005 T-SQL 中還有一個(gè)很酷的OUTPUT 子句?,F(xiàn)在你不費(fèi)吹灰之力就可以獲得INSERT 、UPDATE 或DELETE語句所影響的每行的信息。對于在INSERT或UPDATE操作之后需要檢索標(biāo)識(shí)列或計(jì)算列的值的場合OUTPUT子句非常有用。

如獲得數(shù)據(jù)INSERT 后該行的Identity的值,產(chǎn)生一些唯一流水號(hào),驗(yàn)證剛剛插入的數(shù)據(jù)等等。一個(gè)有趣的例子是Identity值的取得。在SQL Server 2000 中你可以在INSERT 語句后立即調(diào)用IDENT_CURRENT()或SCOPE_IDENTITY()函數(shù)來得到INSERT 語句的Identity?,F(xiàn)在你僅僅需要在INSERT 語句中指定output子句就直接得到剛剛插入的Identity值,實(shí)在太簡單了,不是嗎?

SQL Server 2005 中T-SQL 語言新增或加強(qiáng)的功能還有很多。如SQL Server 2005 新增加了一類排名函數(shù)RANK/DENSE_RANK/NTILE/ROW_NUMBER,輕松解決了開發(fā)者要求返回?cái)?shù)據(jù)行中提供行號(hào)等排序功能。新增的P I V O T 和UNPIVOT運(yùn)算符使得對結(jié)果集進(jìn)行行和列的旋轉(zhuǎn)變換十分簡單。

公用表表達(dá)式(CTE)解決了T-SQL語言的遞歸查詢問題,而使用OPENROWSET 語句現(xiàn)在可以直接從文件里面執(zhí)行大容量操作了。我覺得每一個(gè)改進(jìn)都是那么有針對性,以至于使我相信這些T-SQL增強(qiáng)必定是SQL Server開發(fā)小組真正聆聽數(shù)據(jù)庫開發(fā)者心聲的結(jié)果。

升級(jí)理由三:安全

 

SQL Server 2005 的安全功能是我認(rèn)為值得升級(jí)的第三個(gè)理由。SQL Server 2005 的安全達(dá)到了前所未有的強(qiáng)大水平,有著比以前版本更清晰的安全模型即主體,安全對象和權(quán)限。在SQLServer 2000 中是用服務(wù)器級(jí)權(quán)限、數(shù)據(jù)庫角色和數(shù)據(jù)用戶權(quán)限的混合方式管理權(quán)限。

而SQL Server 2005 統(tǒng)一使用GRANT語句管理主體對安全對象的權(quán)限,簡化了安全管理。其中我認(rèn)為最大的改進(jìn)是用戶和架構(gòu)(schema)分離。在SQL Server 2000中如果用戶不是DBO 且擁有對象,那么移除該用戶將是很麻煩的事情。你需要首先使用sp_changeobjectowner改變該用戶擁有的對象所有權(quán),然后把所有引用該對象的代碼做相應(yīng)的修改。而在SQL Server 2005 中就不需要這樣麻煩了,因?yàn)楝F(xiàn)在用戶不再擁有對象。擁有對象的是schema 而不是用戶。數(shù)據(jù)庫中的所有對象都屬于某個(gè)schema。

對象的完整名字是server.database.schema.object,符合SQL-99 標(biāo)準(zhǔn),而不是以前的server.database.user.object 方式。刪除用戶僅需要改變schema的owner就可以了。不需要修改任何已存在的數(shù)據(jù)庫訪問代碼,真的很方便。用戶和架構(gòu)分離還有一個(gè)好處就是對象的權(quán)限管理變得簡單。

你可以把某些對象集中于某個(gè)架構(gòu)里面,然后對該架構(gòu)設(shè)置權(quán)限,那么架構(gòu)里面的所有對象就自動(dòng)繼承了同樣的權(quán)限。

如果你需要保護(hù)數(shù)據(jù)庫中的敏感數(shù)據(jù),那么SQL Server2005 中的數(shù)據(jù)加密功能絕對值得考慮。以前不止一次有客戶問我如何加密數(shù)據(jù)庫中的某些數(shù)據(jù),是否可以使用一些內(nèi)部不公開的函數(shù)如PWDENCRYPT加密數(shù)據(jù)。我的回答是使用Windows的EFS(加密文件系統(tǒng))功能加密數(shù)據(jù)庫文件或在應(yīng)用程序?qū)訉?shù)據(jù)加密后再存儲(chǔ)。

現(xiàn)在用戶期盼已久的數(shù)據(jù)加密功能終于在SQL Server 2005 中得到實(shí)現(xiàn),那些有機(jī)密數(shù)據(jù)需要保護(hù)的用戶值得高興了。SQL Server 2005不是簡單的提供一些加密函數(shù),而是把市場上已經(jīng)成熟的數(shù)據(jù)安全技術(shù)引進(jìn)到數(shù)據(jù)庫中,有一個(gè)清晰的加密層次結(jié)構(gòu)。SQL Server 2005 支持證書(certificate),非對稱密鑰和對稱密鑰算法,一是防止敏感數(shù)據(jù)被泄漏,二是防止數(shù)據(jù)被篡改。

對稱密鑰支持RC4,RC2,TripleDES 和AES算法,而非對稱密鑰使用RSA 算法。證書其實(shí)就是非對稱密鑰中公鑰的容器。密鑰管理是安全中比較弱的部分。SQL Server 2005 每一層都使用證書、非對稱密鑰和對稱密鑰的組合對它下面的一層進(jìn)行加密,提高了密鑰安全性。出于性能考慮,一般不用加密強(qiáng)度大的非對稱密鑰或證書直接加密數(shù)據(jù),而是使用對稱密鑰加密數(shù)據(jù)獲得較快的性能,然后使用證書或非對稱密鑰加密對稱密鑰。

升級(jí)理由四:快照隔離

 

你還在為系統(tǒng)出現(xiàn)的阻塞(blocking)或死鎖(deadlock)現(xiàn)象苦惱嗎?快試試SQL Server 2005 中的快照隔離吧。通過行版本(row versioning)控制技術(shù),SQL Server 2005 除了原來支持的四種事務(wù)隔離級(jí)別(臟讀、提交讀、可重復(fù)讀、可串行讀)外新增了一個(gè)快照(SNAPSHOT)隔離級(jí)別,有可能使阻塞或死鎖成為歷史。

SQL Server在TEMPDB中存放不同版本的數(shù)據(jù)行,select 語句讀取這些不同版本的行,讀操作不阻塞寫數(shù)據(jù),寫操作也不阻塞讀操作,這樣那些由于讀/ 寫爭用導(dǎo)致的大量死鎖的系統(tǒng)將從中獲得無窮益處。如果你的系統(tǒng)復(fù)雜難優(yōu)化,那么升級(jí)到SQL Server 2005 試試快照隔離級(jí)別,也許會(huì)有意想不到的效果。

SQL Server 2005中的快照隔離可細(xì)分為兩種即READ_COMMITTED_SNAPSHOT和ALLOW_SNAPSHOT_ISOLATION。建議大家多使用前者,因?yàn)橐烟峤蛔x隔離可用于大多數(shù)現(xiàn)有應(yīng)用程序,而不需要進(jìn)行任何更改,其占用的TEMPDB空間也少??梢灶A(yù)見如果使用快照隔離級(jí)別,那么需要特別關(guān)注TEMPDB的大小和性能。你也許需要把TEMPDB放在有足夠空間的單獨(dú)磁盤上以提高性能。

考慮到快照隔離在避免阻塞和死鎖方面的作用,我把它做為升級(jí)的第四個(gè)理由。#p#

升級(jí)理由五:數(shù)據(jù)庫鏡像

對于那些要求高可用性的用戶來說,數(shù)據(jù)庫鏡像也許是考慮升級(jí)的唯一理由。SQL Server 2005的前版本在高可用性方面提供了故障轉(zhuǎn)移群集(Failover Cluster)和Log shipping方案。群集方案的一個(gè)好處是在一臺(tái)機(jī)器發(fā)生問題時(shí)它可以提供極快的故障轉(zhuǎn)移能力,在備份服務(wù)器上聯(lián)機(jī)數(shù)據(jù)庫,應(yīng)用程序只需重新連接即可。

群集方案的一個(gè)缺點(diǎn)是數(shù)據(jù)庫放在共享盤上,有單點(diǎn)失效這個(gè)缺點(diǎn),一旦共享盤失敗將導(dǎo)致整個(gè)系統(tǒng)崩潰。所以群集方案一般都要結(jié)合嚴(yán)緊的備份方案一起使用。而logshipping系統(tǒng)有一個(gè)時(shí)間上的延遲,且如果日志備份很大,傳送速度也是個(gè)問題。SQL Server 2005引入的數(shù)據(jù)庫鏡像可作為故障轉(zhuǎn)移群集或Log shipping 的替代或補(bǔ)充方案來提高數(shù)據(jù)庫的高可用性。

鏡像的主要優(yōu)點(diǎn)是它比前兩者更容易管理,沒有群集的單點(diǎn)失效缺點(diǎn),也沒有l(wèi)og shipping 的時(shí)間延遲。鏡像服務(wù)器可以放在很遠(yuǎn)的地方,提高了作為備份服務(wù)器的高可用性。

數(shù)據(jù)庫鏡像需要兩臺(tái)或三臺(tái)服務(wù)器。主服務(wù)器通過傳送事務(wù)日志中的每個(gè)事務(wù)到鏡像服務(wù)器來進(jìn)行數(shù)據(jù)同步。每當(dāng)數(shù)據(jù)庫commit一個(gè)事務(wù),該事務(wù)就會(huì)被同步到鏡像服務(wù)器。如果事務(wù)安全設(shè)置為FULL,傳送操作將為同步操作。同步操作可以確保將提交的事務(wù)提交給兩個(gè)服務(wù)器,但可能會(huì)增加事務(wù)提交的時(shí)間。

如果事務(wù)安全設(shè)置為OFF,操作將為異步操作。事務(wù)會(huì)在不等待鏡像服務(wù)器的情況下提交,這將不影響主服務(wù)器事務(wù)的提交時(shí)間,但不能確保鏡像也提交了該事務(wù),所以在出現(xiàn)故障那一刻有可能有部分日志丟失。對于需要嚴(yán)格同步數(shù)據(jù)的鏡像系統(tǒng)可以采取同步模式。而僅僅希望有個(gè)備份服務(wù)器又不影響性能的情況下可以使用異步模式(高性能模式)。無論那種模式,一旦主服務(wù)器出現(xiàn)問題,你可以手動(dòng)實(shí)現(xiàn)故障轉(zhuǎn)移或配置系統(tǒng)實(shí)現(xiàn)自動(dòng)故障轉(zhuǎn)移。

升級(jí)理由六:商務(wù)智能BI 增強(qiáng)

 

SQL Server 2005 對已經(jīng)有或打算開發(fā)基于SQL Server 的商務(wù)智能方案的用戶吸引力極大。SQL Server 2005中有關(guān)商務(wù)智能方面的增強(qiáng)很多,是升級(jí)的很好理由。首先是傳統(tǒng)的DTS(Data Transformation Services)被新的IS(Integration Services)代替。

SQL Server 2000 中的DTS用來在不同服務(wù)器之間轉(zhuǎn)移數(shù)據(jù),但對于復(fù)雜重復(fù)的工作流DTS倍感吃力。IS重新改寫了DTS的數(shù)據(jù)流引擎,引入提取、轉(zhuǎn)換和加載(ETL)數(shù)據(jù)的新編程體系,將數(shù)據(jù)流與控制流分開,開發(fā)能力大大加強(qiáng),包部署、管理和性能方面也比DTS上了一個(gè)數(shù)量級(jí)。筆者看來,DTS終于從原來的小打小鬧成長為成熟的IS 數(shù)據(jù)集成服務(wù)體系。

分析服務(wù)(Analysis Services)在SQL Server 2005 中也有很多改進(jìn)。原來沒有profiler想跟蹤分析服務(wù)里面的語句非常痛苦?,F(xiàn)在2005 終于支持profiler了。Profiler對性能調(diào)優(yōu)和排查錯(cuò)誤將非常有用。分析服務(wù)2005 真正具備了實(shí)時(shí)分析能力,新增加了四種數(shù)據(jù)挖掘算法,也支持.NET語言進(jìn)行開發(fā)(如存儲(chǔ)過程等)。

至于報(bào)表服務(wù),2005 版本中添加了報(bào)表生成器和模型設(shè)計(jì)器這兩個(gè)新工具,支持報(bào)表拖拉設(shè)計(jì)。2005 的報(bào)表改進(jìn)如新的打印功能、多值參數(shù)等。設(shè)計(jì)過報(bào)表的人員會(huì)深深知道多值參數(shù)的妙處。

另外,無論是IS、報(bào)表服務(wù)等都可以在類似Visual Studio的環(huán)境中開發(fā),任務(wù)完成不過鼠標(biāo)拖拉之間,非常容易上手。

升級(jí)理由七:全文搜索增強(qiáng)

相對前版本SQL Server 2005中性能提升最多的部分當(dāng)數(shù)全文檢索。SQL Server 2000 中的全文本檢索和SQL Server 7.0中的差別不大,處于能用的水平。在SQL Server 2000中使用全文檢索一個(gè)最大的痛苦是建立全文索引的性能不好,需要的時(shí)間太長,特別是在表很大的情況下。一個(gè)幾千萬行數(shù)據(jù)的表也許需要數(shù)個(gè)小時(shí)到數(shù)天時(shí)間才能完成全文索引的建立。SQL Server 2005全文檢索在開發(fā)的時(shí)候就集中于三點(diǎn):性能,集成,和可擴(kuò)展性。

據(jù)開發(fā)小組人員的簡單測試,原來在SQL Server 2000中建立全文索引需要14天的表,現(xiàn)在只需要幾個(gè)小時(shí)!幾乎有上百倍的性能提升,只能用“驚異”來形容。其相關(guān)的全文檢索語句也有30%~50%甚至更高的性能提高。性能方面的提高得益于全新設(shè)計(jì)的全文檢索引擎。其中關(guān)鍵的一點(diǎn)設(shè)計(jì)是全文檢索引擎現(xiàn)在使用共享內(nèi)存和SQL Server 進(jìn)行數(shù)據(jù)大規(guī)模并發(fā)交互,而不是原來基于逐行的方式,使得性能上了好幾個(gè)數(shù)量級(jí)。

除了性能,SQL Server 2005 中的全文索引的集成性也大大加強(qiáng)。在SQL Server 2000 中很難對全文檢索進(jìn)行備份。一旦有數(shù)據(jù)庫恢復(fù)或移動(dòng),你得重新重建索引。對于幾百個(gè)GB的數(shù)據(jù)庫,重建索引幾乎是不能接受的惡夢?,F(xiàn)在終于可以和數(shù)據(jù)庫一起備份和恢復(fù)全文索引了。

你不再需要在恢復(fù)數(shù)據(jù)庫后重建全文索引了!惡夢終于成為歷史。除了可以備份外,你也可以方便的改變?nèi)乃饕拇疟P位置。你甚至可以在一個(gè)熱備機(jī)器上把全文索引建立好,然后copy 這個(gè)索引到生產(chǎn)服務(wù)器上使用。

升級(jí)理由八:可用性功能增強(qiáng)

 

索引聯(lián)機(jī)操作。除了數(shù)據(jù)庫鏡像,SQL Server 2005 中可用性還有很多其他提高。索引現(xiàn)在可以使用ONLINE關(guān)鍵字進(jìn)行在線建立或重建或刪除了。它的技術(shù)要點(diǎn)是在內(nèi)存里面動(dòng)態(tài)生成索引的另一個(gè)副本從而不影響原來查詢的進(jìn)行。一旦索引副本完成操作即替代原來索引成為當(dāng)前索引。

我認(rèn)為索引聯(lián)機(jī)操作的意義是很大的,因?yàn)楹芏鄶?shù)據(jù)庫系統(tǒng)都有定期調(diào)整或維護(hù)索引方面的需求。有了2005 你無需擔(dān)心業(yè)務(wù)的正常運(yùn)行而大膽的對索引進(jìn)行維護(hù)或修改。

頁校驗(yàn)和。SQL Server 2005中的數(shù)據(jù)庫頁引入校驗(yàn)和增強(qiáng)了數(shù)據(jù)的可靠性。除了原來SQL Server 2000 中已有的TORN_PAGE_DETECTION 外,SQL Server 2005 新增實(shí)現(xiàn)了頁的檢驗(yàn)和(CHECKSUM)。你使用ALTER DATABASE語句的SET PAGE_VERIFY子句即可指定。

它的原理是向磁盤中寫入8K數(shù)據(jù)頁面時(shí),SQL Server計(jì)算整個(gè)8K頁面內(nèi)容的校驗(yàn)和并將該值存儲(chǔ)在頁頭中。再次從磁盤中讀取頁時(shí),SQL Server動(dòng)態(tài)計(jì)算讀取到的頁面內(nèi)容的校驗(yàn)和,并與存儲(chǔ)在頁頭中的校驗(yàn)和值進(jìn)行比較。如果不相等則意味著頁面有物理損壞,需要檢查IO硬件。另外設(shè)置檢驗(yàn)和的另一個(gè)好處是還可以在備份和還原操作過程中使用RESTORE VERIFYONLY語句驗(yàn)證每一數(shù)據(jù)頁的完整性從而確認(rèn)備份文件沒有物理損壞。

在線還原。在數(shù)據(jù)庫的某一部分未恢復(fù)前,用戶無法對該部分進(jìn)行訪問,但可以訪問所有其他數(shù)據(jù)。SQL Server 2000中如果數(shù)據(jù)庫在還原或recovery當(dāng)中,用戶不能訪問數(shù)據(jù)庫。這樣如果數(shù)據(jù)庫很大需要rollback或rollforward的事務(wù)很多的話,recovery的時(shí)間會(huì)出奇的長。SQL Server 2005 的在線還原功能使得數(shù)據(jù)庫在很短的時(shí)間內(nèi)變得可用。

升級(jí)理由九:復(fù)制增強(qiáng)

SQL Server 2000 中的復(fù)制功能已經(jīng)很好。我這里把復(fù)制作為升級(jí)的一個(gè)理由因?yàn)镾QL Server 2005在原來的基礎(chǔ)上又增添了不少的功能。如peer-to-peer對等復(fù)制,可以在參與者之間相互進(jìn)行復(fù)制,這樣你可以采用對等復(fù)制在復(fù)制參與者之間建立某種程度的負(fù)載平衡。

合并復(fù)制現(xiàn)在支持通過HTTPS進(jìn)行數(shù)據(jù)同步,可以方便建立基于INTERNET 的復(fù)制。發(fā)布表現(xiàn)在可以使用標(biāo)準(zhǔn)的T-SQL語句如Alter Table等進(jìn)行結(jié)構(gòu)修改然后被復(fù)制而不是僅僅局限于使用sp_repladdcolumn和sp_repldropcolumn存儲(chǔ)過程。

在SQL Server 2000 中,僅支持向其他數(shù)據(jù)庫(如DB2或Oracle)發(fā)布數(shù)據(jù),而在SQL Server 2005 中,可將Oracle 數(shù)據(jù)庫直接復(fù)制到SQL Server??梢詮膫浞葜谐跏蓟聞?wù)性訂閱而不是僅僅局限于從快照對復(fù)制進(jìn)行初始化,等等……

升級(jí)理由十:異步處理能力

SQL Server 2005 通過引入全新的Service Broker 提供了革命性的異步處理能力。Service Broker提供了一個(gè)功能強(qiáng)大的異步編程模型。它為數(shù)據(jù)庫應(yīng)用程序增加了可靠、可擴(kuò)展、分布式異步功能異步編程,允許程序僅僅在資源可用時(shí)才去執(zhí)行占用大量資源的任務(wù),以此來縮短響應(yīng)時(shí)間,提高吞吐量。在我看來,Broker的最大好處一是異步執(zhí)行能力,提高了可伸縮性,二是可靠執(zhí)行,三是集成于數(shù)據(jù)庫中,備份數(shù)據(jù)庫就備份了broker 的消息隊(duì)列。

SQL Server 2005 中的查詢通知就是基于Service Broker的應(yīng)用。你可以使用查詢通知功能來發(fā)送一個(gè)命令到SQL Server請求在查詢結(jié)果發(fā)生變化時(shí)接收SQL Server的通知。這樣就可以只有在程序以前檢索的結(jié)果發(fā)生變化時(shí),才需要重新查詢數(shù)據(jù)庫。

一個(gè)可以預(yù)見的應(yīng)用是在使用緩存的Web 站點(diǎn)中。Web站點(diǎn)首先發(fā)送語句到數(shù)據(jù)庫服務(wù)器,獲得數(shù)據(jù),緩存到本地,然后只有在收到查詢通知的時(shí)候才清理緩存,重新查詢數(shù)據(jù)。這個(gè)機(jī)制避免了重復(fù)輪詢SQL Server,大大減輕了服務(wù)器的負(fù)載,也提高了Web 站點(diǎn)的伸縮性。

因?yàn)镾QL Server 2005 的Service Broker帶來了數(shù)據(jù)庫編程異步處理能力的革命,我把它作為升級(jí)的第十個(gè)理由。

總結(jié)

上面列出的十大理由僅僅是基于筆者的考慮,并沒有囊括SQL Server 2005 所有的功能。SQL Server 2005 還有其他很多非常優(yōu)秀或重大的改進(jìn)。比如支持通過HTTP SOAP協(xié)議直接訪問數(shù)據(jù)庫,增加XML數(shù)據(jù)類型,支持Xquery,使用新的SQL ServerManagement Studio 等等。

有一點(diǎn)我必須提一下,就是現(xiàn)在可以調(diào)用sp_create_plan_guide來強(qiáng)制指定SQL Server總是使用某個(gè)執(zhí)行計(jì)劃運(yùn)行語句,避免SQL Server動(dòng)態(tài)生成不夠優(yōu)化的查詢計(jì)劃,實(shí)在太棒了。在筆者看來,SQL Server 2005 帶來的好處遠(yuǎn)遠(yuǎn)大于升級(jí)導(dǎo)致的工作量,升級(jí)到SQL Server 2005 是遲早的事情。

早升級(jí)早擁有,對SQL Server 2005,你準(zhǔn)備好了嗎?

【編輯推薦】

  1. SQL Server Compact中的DLL文件與工具
  2. SQL Server數(shù)據(jù)庫在安裝時(shí)的注意事項(xiàng)
  3. SQL Server 2005數(shù)據(jù)庫安裝實(shí)例演示
  4. SQL Server 2005性能監(jiān)視器計(jì)數(shù)器的安裝問題
  5. SQL Server 2000全文檢索的使用方案描述
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-07-07 17:24:32

SQLServer20

2013-10-21 10:07:30

微軟Windows 8.1理由

2009-04-27 14:48:44

2010-06-29 17:45:22

SQL Server

2013-07-03 10:10:46

Windows 8.1

2013-08-20 09:59:25

Windows 8.1微軟操作系統(tǒng)

2010-07-07 17:11:46

SQL Server

2011-04-07 09:44:23

SQL2000數(shù)據(jù)庫SQL2005

2010-07-13 17:02:18

SQL Server

2010-06-17 15:17:24

SQL Server

2010-06-01 13:57:14

IPv6協(xié)議

2010-07-19 11:28:14

SQL Server

2011-04-07 13:28:58

AccessSQL Server

2009-08-19 09:24:05

Windows 7系統(tǒng)升級(jí)缺點(diǎn)

2016-07-11 08:56:51

Windows 10升級(jí)理由

2010-07-16 10:14:07

2016-05-31 13:55:48

Ubuntu 16.0升級(jí)Linux

2010-07-19 08:28:26

Sql Server2

2010-07-23 09:53:29

SQL Server

2013-07-24 09:11:22

XPWindows 8
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)