熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

淺析SQL Server 2008企業級新特性

2022-06-13   來源: SQL Server 

  SQL Server 已經發布我們可以看到它在各方面都有了顯著的進步這些讓人側目之處和失望之處都有可能極大地影響大型企業的采購意向

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

  在基於對SQL Server 徹底的面向企業的改進之後Katmai為大規模部署帶來了非常引人注目的特性比如數據庫引擎中的數據及備份壓縮稀疏列壓縮與過濾索引這些功能都是為了節省存儲空間環保綠色另外別忘了還有Change Data Capture其在表中捕捉生成數據的差別以便更新數據倉庫

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

  更多的數據更少的存儲空間

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

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

  在SQL Server 微軟已經包含了幾個存儲過程以方便你在開始壓縮之前就可以估計使用哪種壓縮方法之後兩者的節省水平以及解壓數據庫之後數據將會擴展到多大這是一個非常重要且體貼的功能因為你不僅需要了解是否值得花時間壓縮而且還要知道磁盤是否處理得了還原後未壓縮的數據但要緊記的是這些存儲過程是基於小范圍的統計上的隨機數據采樣如果碰巧遇到一個數據上的采樣失誤那麼就會得到錯誤的估計結果

  另外微軟實現壓縮的方法節約的不僅僅是存儲資源數據還可以在內存中保持壓縮狀態只在讀取時才解壓這意味著你可以把更多的數據頁裝入內存中由此減少磁盤讀取次數而CPU用於解壓的時間也遠遠少於磁盤尋道的時間

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

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

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

  工作負荷是好還是差?

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

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

  其實這個特性最大的受益者是OLTP(在線交易或聯機事務處理)系統其只會產生一些輕量級的數據如果不想它占用過多服務器資源可把查詢進程放入它們自己的Resource Governor中以管控資源使用量使服務器的大部分功率都用於OLTP負載賺取真正的真金白銀

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

  SQL Server 還帶來了基於策略的管理(PBM)其是一種可為任何事件定義策略(規則)的方法可在服務器超出策略時要麼強制執行要麼發出警報你幾乎可在策略中定義任何事情甚至像表名不能以tbl打頭這樣的策略也可以強制執行還可以定義如所有數據庫都應每天備份如果某台服務器缺少備份應發出警報PBM正成為SQL Server發展中一個非常強大的工具至少我也非常喜歡它

  SQL Server 的閃光之處

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

  對多數大型企業來說我認為SQL Server 最大的亮點在於數據壓縮及CDC因為兩者都會影響到企業的預算Resource Governor是一個非常好的功能但目前它還比較稚嫩局限太多還未達到微軟期望的水平相信再經過幾個版本它定會不負眾望

  壓縮及過濾索引這次想必給大家帶來了不一樣的感覺雖然過濾索引存在上面提到的一些小問題但如果你把它們用對地方也能看到所期望的性能提升另外在其他工具方面也有了一些重大的改進但對數據庫管理員來說他們可能要失望了因為這些改進都是針對開發人員的 


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22428.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.