百度上暫時尚未搜索到相關的我的寫的比較有價值的文章,至少在中文網絡的世界裏面沒有html
可是在微軟的網站有這樣一篇文章:《比較 SQL Server 與 IBM DB2》sql
文章從下面幾個方面進行了對比數據庫
一、TCO和ROI
二、性能和可擴展性
三、高可用性
四、安全
五、管理
六、開發效率
七、商業智能和數據倉庫
八、OLTP
九、SAP集成windows
文章介紹得比較牛逼安全
性能與可擴展性
SQL Server 的性能和可擴展性優於IBM DB2.服務器
基準顯示SQL Server 可以掌控大型工做負荷:網絡
- 在TPC-C 基準測試總,SQL Server每分鐘的事務處理超過1百萬,而且在 Windows平臺上擁用最好的性能.
- 在 TPC-H 基準的10項比較中,有7項SQL Server優於DB2.
- 在一項 SAP-SD 認證基準中 支持 93,000個併發用戶,至關於全球最大的SAP客戶的10倍以上.
- 在新的OLTP基準標準-TPC-E中,SQL Server 是無可爭議的領先者.
- 閱讀最新的 SQL Server 2008 基準結果.
SQL Server 2008 包括最新的性能與可擴展性 ,可以優於DB2爲大型工做負荷提供更好的性能:架構
- o 改進分區表、索引、範圍及其餘
- o 壓縮支持符合甚至超越了IBM DB2 UDB資源管理,可以控制更細的CPU和內存資源
- o 性能數據收集器能夠跨企業定位問題、調整和監控SQL Server實例
- o 高度調整的ETL引擎 目前保持了世界ETL性能紀錄
成功案例併發
Citi Group runs Lava market montage解決方案 運行在SQL Server上, 達到每秒200,000次以上的更新頻率異步
Xerox 採用SQL Server管理天天7百萬的事務處理,達到99.999%運行時間
American Power Conversion 遷移至 SQL Server企業版---實現100%的快速響應時間,節省費用800,000美圓
VHA 從DB2的大型機遷移至SQL Server—提高了25%效率, 下降了89%的複製時間, 顯著下降了總擁有成本.
Countrywide Home Loans 選擇了SQL Server以提升性能,得到高可用性
Microsoft IT 使用SQL Server來驅動 27TB的全球法定安全工具
Nasdaq, 全球領先的科技股交易,實時定票系統,採用SQL Server處理高達每秒5000的事務量.
Unisys UPSS system, 在 SQL Server上架構23 TB的數據倉庫,進入了數據倉庫峯值負荷的Top10行列.
Premier BankCard 將12 TB的數據倉庫和OLTP數據庫升級到SQL Server.
Danske Supermarket 在 SQL Server分析服務上運行600GB的的多維分析,以及10TB的商業智能數據
還有一個帖子《sqlserver的併發處理能力到底如何呀?高手都說說?》
其實這個題目是too open ended,不管你們認爲它的定位在Oracle之下,仍是隻適合於中小型數據庫,我只想說一下它在我眼中的能力
我相信我寫完後其餘數據庫愛好者就會出來噴了,Oracle的、MySQL的,畢竟這種文章跟《C#和JAVA哪家強》之類的文章是比較相似的。
我在這篇文章主要講兩個你們最care的方面:數據量、性能和功能
其實你們剛開始用數據庫最關心的莫過於OLTP場景裏面的性能了還有這個數據庫系統的所可以hold住的數據量
1、hold住大數據量
SQL Server做爲一個成熟的商業數據庫,對於hold住大數據量是沒有問題的
正如上面文章提到的:Microsoft IT 使用SQL Server來驅動 27TB的全球法定安全工具
在本人所在公司也有一些比較大的數據庫,數據庫體積大的也有7~8TB,小的幾十MB
不少人說:「SQL Server不能處理海量數據,數據量一大SQL Server就處理不了!」
我想問:「海量數據究竟有多少數據?1億?10億?100億?1TB?10TB?100TB?」
反正我每天都對着這麼多數據(上TB也有、上十億條也有),仍是這樣用SQL Server管理它們。
我這裏想說明一下如何比較數據量:比較數據量應該用數據庫的實際佔用體積大小來比較,而不該該用單表數據量的大小來比較!
這裏有一個例子:以前咱們數據庫服務器裏有一個表,有六個字段,都是int類型,單表數據量已經1億+了,可是數據庫的大小隻有20G不到
在我眼中只是一個比較小的數據庫,雖然它的數據量比較驚人
在園友馬非碼的博客裏曾經寫到一篇文章《我是如何在SQLServer中處理天天四億三千萬記錄的》,文章是很是多的推薦
可是在我眼裏,文章沒有多少新意,正如我剛纔說的,四億三千萬數據可能就<100G的數據,這麼多數據其實跟SQL Server是否能hold住
沒有多大關係,而是跟博主的架構能力有關係,數據庫架構無非就是 分表-》分庫-》分機房,解決CAP問題,還有就是MVCC的問題。
實際上,超大型數據庫(VLDB)跟小型數據庫管理起來是不同的,這裏我是無論它數據量,我只管它的數據庫實際佔用體積
對於管理大型數據庫裏面的大表,你們第一個想法就是使用表分區來管理它,表分區從SQL Server2005開始推出到如今SQL Server2014仍是使用表分區
你們會說,微軟仍是沒有什麼突破,仍是用這麼老的表分區技術來管理大表,甚至於有時候我作了表分區,可是整個數據庫這麼大,我仍是作不了完整備份。。。
貌似在你們的眼中,表分區只是做爲一種提高查詢性能的工具,更直接來講,就是提高Select Query性能的利器
可是對於咱們DBA來講,分區表的優點更多的體如今管理方面
分區表的管理優點以下:
一、壓縮單獨某個分區的數據(SQL2008)
二、按分區的統計信息(SQL2014 CREATE STATISTICS 和相關統計信息語句如今容許經過使用 INCREMENTAL 選項建立按分區的統計信息)
三、聯機從新生成某個分區的數據(SQL2014 針對聯機索引操做事件類的進度報告如今具備兩個新數據列:PartitionId 和 PartitionNumber)
四、聯機從新組織某個分區的數據(SQL2005)
五、文件組備份和段落還原(SQL2005)
六、CHECKFILEGROUP(SQL2005)
七、交換分區(刪除歷史數據或歸檔 或進行ETL)
八、鎖升級能夠提高到分區鎖,而不是直接到表鎖(SQL2008)
其實只要表分區作得好,分區區間作得合理,定時維護分區表,hold住大數據量是沒有多少問題的。
前年看到一篇文章,對於關係型數據庫,若是數據庫的實際佔用體積到了100TB,關係型數據庫已經無能爲力了,該到Hadoop上場的時候了。
本人認可,若是你的數據庫真的有100TB,那麼SQL Server可能會沒有能力handle,可是,你的數據庫真的reached 100TB,那麼大家公司的數據庫架構師
是否是有責任承擔這個風險,是否是他的數據庫架構沒有作好,沒有分庫分表分機房。
我先無論關係型數據庫是否有能力handle這麼大的數據量,後來我又看了一個視頻。
視頻裏面甲骨文技術產品事業部總經理吳承楊介紹了關係型數據庫和Hadoop的區別,Hadoop是處理非結構化數據的
而關係型數據庫是處理結構化數據的,二者的側重點是不同,Hadoop處理的是海量非結構化數據,通常數據量PB級別
而吳承楊總經理也講到,非結構化數據一般指代的就是網頁數據,Hadoop把這些數據通過處理以後就存放進去關係型數據庫裏面以便查詢
因此不能把Hadoop和關係型數據庫相提並論。
2、SQL Server的性能
性能方面,我只想談論一下IO
你們知道無論Windows仍是Linux,都是 用戶程序->OS內核->存儲設備這種架構,用戶程序和OS內核之間存在一套IO接口
一樣,OS內核和存儲設備之間同樣存在一套IO接口,有異步,同步,存儲設備的Write Through和Write Back等參數
而Linux操做系統的IO行爲跟Windows有不少不一樣之處的,二者的文件系統的不一樣,二者的IO設備驅動不同,IO調度模型不同
因爲本人對Windows和Linux的IO調度沒有太深刻研究,你們能夠參考下面兩篇文章
其實通常不是太差的數據庫均可以達到上千的TPS,上萬的QPS,上萬的併發鏈接
因爲本人沒有親自測試也沒有環境,就再也不詳細說了
以前看過一本書,裏面說Linux的IO調度模型對於使用網絡存儲的機器來說更加好,上層的一個請求,對於下層少許的網絡數據包
而Windows上層的一個IO請求會對網絡存儲發出比Linux還多的網絡數據包,好像是iSCSI協議,因此運行在Linux上的Oracle和MySQL會更勝一籌
可是能夠說,SQL Server針對Windows系統作過特別優化,在TPS和QPS各方面測試中不會跟主流數據庫相差很遠,否則的話SQL Server早就從地球上消失了
3、SQL Server的功能
本人以爲SQL Server的功能作得是比較完善了,最起碼對於一個商業數據庫,其餘競爭對手有的功能,SQL Server基本都有
例如限制資源使用這個功能
SQL Server的資源調控器能夠針對登陸用戶限制它所使用的CPU、內存、IO資源
而MySQL的Query Throttling針對的是
限制用戶每小時的修改數據庫數據的數量
控制用戶每小時打開新鏈接的數量
限制有多少用戶鏈接MYSQL服務器
MySQL的Query Throttling偏向於查詢方面的
我這裏不評論好壞,我只想說各有各的優缺點
到目前爲止,我還未發現其餘數據庫有的功能,SQL Server沒有的,或者本人才疏學淺,可能Oracle有的功能而SQL Server沒有的
好比:Oracle中的位圖索引,而在SQL Server中位圖過濾(Bitmap)運算符
相關文章:《SQL Server優化器特性-位圖過濾(Bitmap)》
不少時候只是你們的實現方式不同已而,而不表明SQL Server沒有
總結
本人作DBA的時間不長,在學校開始接觸,到畢業以後公司使用SQL Server,到如今由它來帶我進入DBA這個行業
對於SQL Server這個產品,本人是比較感激的,天天跟各位SQL Server愛好者討論如何使用它,不亦樂乎
只惋惜SQL Server在中國國內市場愈來愈不活躍,不知道之後會不會有盡頭。
若有不對的地方,歡迎你們拍磚o(∩_∩)o