解析SQL Server 2008企業(yè)級新特性_Mssql數(shù)據(jù)庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:SQL Server 2005查看文件及文件組的語句
      SQL Server 2005查看文件及文件組的語句: 具體示例如下: 以下為引用的內(nèi)容:  SELECT df.[name], df.physical_name, df.[size], df.grow

      SQL Server 2008已經(jīng)發(fā)布,我們可以看到它在各方面都有了顯著的進(jìn)步,這些讓人側(cè)目之處和失望之處都有可能極大地影響大型企業(yè)的采購意向。

      微軟SQL Server 2008的開發(fā)代號是Katmai,這個名字來源于阿拉斯加半島東端阿拉斯加州北部阿留申山區(qū)的一座活火山,對數(shù)據(jù)庫而言,可能并不是個最好的比喻(嘿嘿,目前為止,Katmai火山還沒有在我頭上爆發(fā)過)。低調(diào)的Katmai看起來似乎是Yukon的一個好的接班人,而Yukon是SQL Server 2005的開發(fā)代號。

      在基于對SQL Server 2005徹底的、面向企業(yè)的改進(jìn)之后,Katmai為大規(guī)模部署帶來了非常引人注目的特性,比如數(shù)據(jù)庫引擎中的數(shù)據(jù)及備份壓縮、稀疏列、壓縮與過濾索引,這些功能都是為了節(jié)省存儲空間,環(huán)保、綠色;另外,別忘了還有Change Data Capture,其在表中捕捉生成數(shù)據(jù)的差別,以便更新數(shù)據(jù)倉庫。

      這些都只不過是冰山一角(喔,不是冰山是火山),還有許多其他的新特性,如基于策略的管理——這是針對中小企業(yè)和大型企業(yè)的,不僅這些,SQL Server 2008的各個方面都讓人留下了深刻的印象。

      更多的數(shù)據(jù),更少的存儲空間

      一般來說,數(shù)據(jù)庫中有兩種類型的壓縮:行壓縮與頁壓縮。實(shí)際上,它們以不同的方法壓縮數(shù)據(jù),因此,很有必要理解兩者的優(yōu)勢所在及它們的工作方式。行壓縮是真正的壓縮,為什么數(shù)據(jù)庫引擎會刪除列尾未使用的空間呢?當(dāng)然這是為了節(jié)省空間。這正是SQL Server在vardecimal壓縮中使用的同一技術(shù),微軟只不過把它擴(kuò)展到其他數(shù)據(jù)類型上了。

      而頁壓縮使用的是眾所皆知的字典壓縮,它把每頁中的數(shù)據(jù)標(biāo)準(zhǔn)化之后并保留一個查找指針。這也是Oracle Database 11g所使用的技術(shù),只不過Oracle稱之為Oracle高級壓縮。在此,我們無須對兩種壓縮方式了解過多,但必須知道SQL Server的頁壓縮包括了更低級的行壓縮,換句話來說,如果你打開了頁壓縮,就自動打開了行壓縮。

      在SQL Server 2008中,微軟已經(jīng)包含了幾個存儲過程,以方便你在開始壓縮之前,就可以估計(jì)使用哪種壓縮方法之后,兩者的節(jié)省水平,以及解壓數(shù)據(jù)庫之后,數(shù)據(jù)將會擴(kuò)展到多大。這是一個非常重要且體貼的功能,因?yàn)槟悴粌H需要了解是否值得花時間壓縮,而且還要知道磁盤是否處理得了還原后未壓縮的數(shù)據(jù)。但要緊記的是,這些存儲過程是基于小范圍的統(tǒng)計(jì)上的隨機(jī)數(shù)據(jù)采樣,如果碰巧遇到一個數(shù)據(jù)上的采樣失誤,那么就會得到錯誤的估計(jì)結(jié)果。

      另外,微軟實(shí)現(xiàn)壓縮的方法,節(jié)約的不僅僅是存儲資源,數(shù)據(jù)還可以在內(nèi)存中保持壓縮狀態(tài),只在讀取時才解壓,這意味著你可以把更多的數(shù)據(jù)頁裝入內(nèi)存中,由此減少磁盤讀取次數(shù),而CPU用于解壓的時間,也遠(yuǎn)遠(yuǎn)少于磁盤尋道的時間。

      稀疏列允許你存儲空值而無須占用物理空間,如果在一張“巨大”的表中,列有許多空值,可能會浪費(fèi)大量的磁盤空間來跟蹤這些空值。而把空值存儲在稀疏列中則不會占用任何空間,存儲需求也會隨之降低。

      在使用稀疏列時要非常留意一點(diǎn),它們與壓縮不兼容,坦白地說,這是微軟的一大失誤。希望本著為用戶著想的原則,在某個Service Pack中就能更正這個問題,而不是要等到下個版本。同時,如果你在表中也定義了稀疏列,那么也不要指望會壓縮表中的數(shù)據(jù),真是不知道微軟是怎么搞的,這些本不應(yīng)該出現(xiàn)在正式產(chǎn)品中的。如果非要說稀疏列與壓縮他倆是一對完美的組合,那“如花”可能也配得上金城武了。

      壓縮索引還像碼事,至少名符其實(shí),這又是節(jié)省存儲空間的另一個方法。過濾索引可以在索引上放置一個where子句(如某條查詢),以便只有表的一部分被索引。聽上去似乎不太妥當(dāng),但在某些情況下你可能就會想要過濾某些索引了,舉個例子來說,在使用稀疏列時,有了過濾索引就無須保持一個包含了主要是空值的索引,你可在稀疏列上放置一條索引,只取那些非空值就行了。這樣做以后,只有那些帶有實(shí)際值的行會被索引,而索引的體積也會相應(yīng)大幅減小。

      工作負(fù)荷是好,還是差?

      Resource Governor是微軟在SQL Server中真正對資源管理的一次嘗試,老實(shí)講,根本就比不上Oracle,但仍是一個好的開始。SQL Server 2008允許你在內(nèi)存和CPU中定義資源限制,但在重負(fù)荷工作情況下仍然差強(qiáng)人意。

      微軟對此的回應(yīng)是,Resource Governor不是旨在滿足重負(fù)荷工作要求,在這第一個版本中,目標(biāo)僅是管控工作負(fù)荷中的那些資源,以防止它們變成“野”進(jìn)程。當(dāng)然了,這仍未解決過度占用磁盤或處理器時間的問題。在SQL Server 2008中,如果一個進(jìn)程開始占用過多的資源,那么也沒有辦法自動把它挪到一個定義好的Resource Governor中,也就是說,一個進(jìn)程要么在資源上受Resource Governor管控,要么就不受控。

      其實(shí)這個特性最大的受益者是OLTP(在線交易或聯(lián)機(jī)事務(wù)處理)系統(tǒng),其只會產(chǎn)生一些輕量級的數(shù)據(jù),如果不想它占用過多服務(wù)器資源,可把查詢進(jìn)程放入它們自己的Resource Governor中,以管控資源使用量,使服務(wù)器的大部分功率都用于OLTP負(fù)載,賺取真正的“真金白銀”啊。

      CDC(Change Data Capture,改變數(shù)據(jù)采集)是一個非常好的功能,我想對那些整日與ETL(取出、轉(zhuǎn)換、加載)處理“扭打”的數(shù)據(jù)庫管理員來說,它會非常受歡迎。CDC允許SQL Server在定義的列中,捕捉到哪些行列已改變,并把變化的結(jié)果放入到一張可被ETL查詢的單獨(dú)的表中。好處顯而易見,對哪些行被插入、刪除或更新,就不再需要廣泛地進(jìn)行查詢了。當(dāng)前來說,在一張表中發(fā)現(xiàn)這些操作并不容易,經(jīng)常還需要編寫代碼才能找出來。但有了CDC之后,你就可在數(shù)據(jù)庫級別上定義這些審計(jì)策略,不用修改程序代碼,一邊看報(bào)紙喝茶去啰。

      SQL Server 2008還帶來了基于策略的管理(PBM),其是一種可為任何事件定義策略(規(guī)則)的方法,可在服務(wù)器超出策略時,要么強(qiáng)制執(zhí)行,要么發(fā)出警報(bào)。你幾乎可在策略中定義任何事情,甚至像“表名不能以tbl打頭”這樣的策略也可以強(qiáng)制執(zhí)行;還可以定義如“所有數(shù)據(jù)庫都應(yīng)每天備份,如果某臺服務(wù)器缺少備份,應(yīng)發(fā)出警報(bào)。”PBM正成為SQL Server發(fā)展中一個非常強(qiáng)大的工具,至少我也非常喜歡它。


      SQL Server 2008的閃光之處

      SQL Server 2008帶來了太多的新功能,片言之間難以表述,筆者甚至都還沒有試一下完全重寫后的SQL Server Reporting Services,或體驗(yàn)一下SQL Server Integration Services、SQL Server Analysis Services中的全部功能,還有新的數(shù)據(jù)倉庫、交互式Dundas向下搜索報(bào)告、IntelliSense(智能感知)、新的活動監(jiān)視器、集成PowerShell等等。

      對多數(shù)大型企業(yè)來說,我認(rèn)為SQL Server 2008最大的亮點(diǎn)在于數(shù)據(jù)壓縮及CDC,因?yàn)閮烧叨紩绊懙狡髽I(yè)的預(yù)算。Resource Governor是一個非常好的功能,但目前它還比較“稚嫩”,局限太多,還未達(dá)到微軟期望的水平,相信再經(jīng)過幾個版本,它定會不負(fù)眾望。

      壓縮及過濾索引這次想必給大家?guī)砹瞬灰粯拥母杏X,雖然過濾索引存在上面提到的一些小問題,但如果你把它們用對地方,也能看到所期望的性能提升。另外,在其他工具方面也有了一些重大的改進(jìn),但對數(shù)據(jù)庫管理員來說,他們可能要失望了,因?yàn)檫@些改進(jìn)都是針對開發(fā)人員的。

      分享:解析在IIS中為SQL Server 2008配置報(bào)表服務(wù)
      不知道是不是SQL Server 2008的Bug,我在安裝了SQL2008后(選擇了安裝報(bào)表服務(wù)的),但是在IIS中根本沒有報(bào)表服務(wù)的虛擬目錄。只是這么一個問題,其他BI設(shè)計(jì)器、報(bào)表服務(wù)等都還算正常。

      來源:模板無憂//所屬分類:Mssql數(shù)據(jù)庫教程/更新時間:2009-09-16
      相關(guān)Mssql數(shù)據(jù)庫教程