本文從價格、性能、平臺支持、sql語言、產品限制等方面比較sql server 2000和db2 universal database version 8.1。
一、平臺比較
sql server 2000只能在windows平臺上運行,包括windows 9x/nt/2000/xp和ce。和sql server 2000相比, db2 universal database version 8.1支持所有主流平臺,除了windows系列之外,還包括aix系統、hp-ux系統、linux、sun solaris等。
1.1 硬件需求
安裝sql server 2000需要intel或兼容的硬件平臺,同時還應當滿足:
| 硬件 | 需求 | 
| 處理器 | pentium 166 mhz或更高 | 
| 內存 | 32 mb ram(桌面引擎的最小內存需求) 64 mb ram(所有其他版本的內存需求) 推薦128 mb ram或更高 | 
| 硬盤空間 | 完整安裝:270 mb 典型安裝:250 mb 最小安裝:95 mb 桌面引擎:44 mb 分析服務:最小50 mb,典型安裝130 mb 英語查詢:80 mb | 
db2 universal database v8.1支持windows平臺、aix系統、hp-ux系統、linux(intel)和sun solaris等。在windows平臺上安裝db2 universal database v8.1的硬件需求如下:
| 硬件 | 需求 | 
| 處理器 | pentium或兼容處理器 | 
| 內存 | ram:最小256 mb 可能需要額外的內存支持 | 
| 硬盤空間 | 典型安裝:最少350 mb 最小安裝:最少100 mb 自定義安裝:最小100 mb 在簇較大的fat驅動器上可能需要額外的磁盤空間 | 
如果在unix系列操作系統上安裝db2 universal database v8.1,包括基于aix的系統、hp-ux系統、linux和sun solaris,硬件必須滿足:
| 硬件 | 需求 | 
| 處理器 | aix:ibm risc/6000或者eserver pseries hp-ux:hp 9000系列700或800系統 linux:intel 32位、64位,s/390 9672或更高,multiprise 3000,eserver z-series solaris:基于solaris ultrasparc的計算機 | 
| 內存 | 最小 256 mb ram 可能需要更多的內存 | 
| 硬盤空間 | 典型安裝:最小450到550 mb 緊湊安裝:最小350到400 mb 自定義安裝:最小350到700 mb | 
1.2 軟件需求
sql server 2000有6個版本:企業版,標準版,個人版,開發版,桌面引擎,以及sql server ce(一個和windows ce兼容的版本),軟件需求如下:
| 操作系統 | 企業版(enterprise edition) | 標準版(standard edition) | 個人版(personal edition) | 開發版(developer edition) | 桌面引擎(desktop engine) | sql server ce | 
| windows ce | x | x | x | x | x | √ | 
| windows 9x | x | x | √ | x | √ | x | 
| windows nt 4.0 workstation with service pack 5 | x | x | √ | √ | √ | x | 
| windows nt 4.0 server with service pack 5 | √ | √ | √ | √ | √ | x | 
| windows nt 4.0 server enterprise edition with service pack 5 | √ | √ | √ | √ | √ | x | 
| windows 2000 professional | x | x | √ | √ | √ | x | 
| windows 2000 server | √ | √ | √ | √ | √ | x | 
| windows 2000 advanced server | √ | √ | √ | √ | √ | x | 
| windows 2000 datacenter | √ | √ | √ | √ | √ | x | 
| windows xp professional | x | x | √ | √ | √ | x | 
db2 universal database v8.1有下面六個版本
db2 enterprise server edition (ese)
db2 workgroup server edition (wse)
db2 workgroup server unlimited edition (wsue)
db2 personal edition (pe)
db2 universal developer's edition (ude)
db2 personal developer's edition (pde)
它們的軟件需求如下:
| 平臺 | 操作系統版本 | 要求安裝的補丁 | 
| windows | windows nt 4.0 | service pack 6a或更高 | 
| windows | windows 2000 | windows terminal server需要service pack 2 | 
| windows | windows xp | - | 
| aix | aix 4.3.3 (32-bit) | maintenance level 9或更高,以及apars iy22308,y32690,和iy33024 | 
| aix | aix 5l (32-bit) | maintenance level 2或更高 | 
| aix | aix 5.1.0(32-bit) | maintenance level 2或更高,以及apars iy31254,iy32217,iy32905,iy33023,和 iy29345 | 
| aix | aix 5.1.0 (64-bit) | maintenance level 2或更高,以及apars iy31254,iy32217,iy32905,y33023,和iy32466 | 
| hp-ux | hp-ux 11i | december 2001 goldbase11i, december 2001 goldapps11i bundles | 
| linux | intel 32-bit: 
 intel 64-bit和z-series: 
 | - | 
| sun solaris | solaris 7 (32-bit) | patch 106327-10 | 
| sun solaris | solaris 7 (64-bit) | patch 106300-11 | 
| sun solaris | solaris 8 (32-bit) | patch 108434-03 and 108528-12 | 
| sun solaris | solaris 8 (64-bit) | patch 108435-03 and 108528-12 | 
| sun solaris | solaris 9 | - | 
二、性能比較
比較sql server 2000和db2 universal database v8.1的性能是一件很困難的事情。實際上,數據庫系統的性能不僅跟數據庫類型有關,而且還在很大程度上決定于數據庫開發者和管理員的經驗。無論使用哪一種rdbms都可以構造出穩定、高效的系統。但是,我們仍舊有可能定義一些典型的事務,例如庫存控制系統、航班預定系統、銀行交易系統中的事務,然后在不同的數據庫系統上運行這些典型事務,以此比較不同數據庫系統的性能。
transaction processing performance council(tpc.org)是一個獨立的組織,定義了一組典型的數據庫事務以及這些事務必須滿足的條件。tpc對數據庫管理系統的事務處理能力和數據庫性能進行基準測試,測試標準是系統和數據庫每單位時間內處理事務的數量,即每秒或每分鐘處理的事務數量。
tpc制定了許多測試規范,包括tpc-c、tpc-h、tpc-r和tpc-w,還有一些較老的測試規范,如tpc-a、tpc-b、tpc-d。其中最著名的是tpc-c測試(oltp測試)。
根據tpc最近的測試結果,sql server 2000在分布式分區群集系統中的tpc-c性能測試中贏得了勝利,參見:top ten tpc-c by performance version 5 results。在價格/性能測試中,sql server 2000也獲得了最好的tpc-c成績。參見:top ten tpc-c by price/performance version 5 results。
注意:由于大多數單位并不真正需要非常大型的數據庫,因此一個很關鍵的問題是:對于大多數企業來說,tpc-c基準測試的實際意義并不是很大。
三、價格比較
和db2 universal database v8.1相比,microsoft sql server 2000一個主要的優勢是價格很便宜,另一個優點是在enterprise edition中已經作為標準功能包含了聯機分析處理(olap,online analytical processing)以及數據挖掘(data mining),因此對于要使用olap和數據挖掘功能的用戶來說,sql server 2000可以節省幾倍的投資。
下面的價格比較基于微軟的ibm db2 version 8.1和sql server 2000價格比較資料。
比較sql server 2000 standard edition和db2 v8.1 workgroup edition的價格:
| cpu數量 | ibm db2 v8.1 workgroup edition | sql server 2000 standard edition | 
| 1 | $7,500 | $4,999 | 
| 2 | $15,000 | $9,998 | 
| 4 | $30,000 | $19,996 | 
| 8 | $60,000 | $39,992 | 
| 16 | $120,000 | $79,984 | 
| 32 | $240,000 | $159,968 | 
比較sql server 2000 enterprise edition(已包含olap和data mining)和ibm db2 v8.1 enterprise edition加上olap、data mining:
| cpu數量 | ibm db2 v8.1 enterprise edition | ibm db2 v8.1 enterprise edition加上 olap和data mining | sql server 2000 enterprise edition | 
| 1 | $25,000 | $113,000 | $19,999 | 
| 2 | $50,000 | $126,000 | $39,998 | 
| 4 | $100,000 | $252,000 | $79,996 | 
| 8 | $200,000 | $504,000 | $159,992 | 
| 16 | $400,000 | $1,008,000 | $319,984 | 
| 32 | $800,000 | $2,016,000 | $639,968 | 
注意:上面對sql server 2000和db2 universal database v8.1的價格比較并不完整,只是一個摘要的比較。實際可能有折扣,而且將來價格可能上升或下降。詳情請訪問ibm和microsoft的網站。
四、特色比較
sql server 2000和ibm db2 universal database v8.1都支持ansi sql-92 entry level,但都不支持ansi sql-92 intermediate level。下面簡單比較一下transact-sql和db2 sql dialect的特點,隨后說明sql server 2000和db2 universal database v8.1的一些限制。
4.1 sql語言
sql server 2000支持的sql方言叫做transact-sql(t-sql),ibm db2 v8.1支持的sql方言叫做db 2 sql dialect。db2 sql dialect要比t-sql強大得多。下表簡要比較了db2 sql dialect和t-sql:
| 功能 | db2 sql dialect | t-sql | 
| 表 | 關系表,對象表,臨時表 | 關系表,臨時表 | 
| 觸發器 | before觸發器,after觸發器,instead of觸發器 | after觸發器,instead of觸發器 | 
| 存儲過程 | db2 sql dialect語句,java方法,第三代語言(3gl)過程。 | t-sql語句 | 
| 用戶定義函數 | 外部標量函數,外部表函數,ole db外部表函數,臨時函數,sql標量、表和行函數 | 標量函數,嵌入式表-值函數,多語句表-值函數 | 
| 數組 | 支持 | 不支持 | 
4.2 限制
下表比較了sql server 2000和db2 v8.1的限制:
| 功能 | sql server 2000 | ibm db2 v8.1 | 
| 列名稱長度 | 128 | 128 | 
| 索引名稱長度 | 128 | 128 | 
| 表名稱長度 | 128 | 128 | 
| 視圖名稱長度 | 128 | 128 | 
| 游標名稱長度 | 128 | 18 | 
| 約束名稱長度 | 128 | 18 | 
| 密碼長度 | 128 | 32 | 
| sql變量長度 | 128 | 64 | 
| 用戶名稱長度 | 128 | 30 | 
| max char()大小 | 8000 | 254 | 
| max varchar()大小 | 8000 | 32672 | 
| 每個表的最大列數 | 1024 | 1012 | 
| 每個索引的最大列數 | 16 | 16 | 
| 每個表的最大索引數 | 250 | 32767 | 
| 最長的sql語句 | 16777216 | 65535 | 
| 每個select的列數 | 4096 | 1012 | 
| 每個insert語句的列數 | 1024 | 1012 | 
| 存儲過程嵌套深度 | 32 | 16 | 
五、結束語
一定要說sql server 2000比db2 universal database v8.1優秀是不切實際的,反過來也一樣。無論是使用sql server 2000還是使用db2 universal database v8.1,都可以構造出穩定、高效的系統,應用和數據庫的穩定性、高效性與其說依賴于數據庫管理系統的類型,不如說依賴于數據庫開發者和管理員的經驗。然而,當我們比較sql server 2000和db2 universal database v8.1時,sql server 2000確實顯示出一些獨特的優勢,db2 universal database v8.1也一樣。
sql server 2000的優勢是:
sql server 2000要比db2 v8.1廉價。
在tpc-c性能和價格/性能測試中,sql server 2000超過了db2 v8.1。
一般認為,sql server 2000更容易安裝、使用和管理。
db2 universal database v8.1的優勢是:
db2 universal database v8.1支持所有已知的平臺,而不僅僅是windows平臺。
db2 sql dialect要比t-sql強大。
可以通過啟動參數調整的配置項目較多。
新聞熱點
疑難解答