SQL Server和DB2大比拼
本文从价格、性能、平台支持、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或兼容的硬件平台,同时还应当满足:
[color=#FFFFFF'][/color]
硬件
[color=#FFFFFF'][/color]
需求
[color=#FFFFFF'][/color]
处理器
[color=#FFFFFF'][/color]
Pentium 166 MHz或更高
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
内存
32 MB RAM(桌面引擎的最小内存需求)
64 MB RAM(所有其他版本的内存需求)
推荐128 MB RAM或更高
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
硬盘空间
[color=#FFFFFF'][/color]
完整安装:270 MB
典型安装:250 MB
最小安装:95 MB
桌面引擎:44 MB
分析服务:最小50 MB,典型安装130 MB
[color=#FFFFFF'][/color]
英语查询:80 MB
DB2 Universal Database v8.1支持Windows平台、AIX系统、HP-UX系统、Linux(Intel)和Sun Solaris等。在Windows平台上安装DB2 Universal Database v8.1的硬件需求如下:
硬件
[color=#FFFFFF'][/color]
需求
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
处理器
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Pentium或兼容处理器
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
内存
[color=#FFFFFF'][/color]
RAM:最小256 MB
可能需要额外的内存支持
[color=#FFFFFF'][/color]
硬盘空间
典型安装:最少350 Mb
最小安装:最少100 MB
自定义安装:最小100 Mb
在簇较大的FAT驱动器上可能需要额外的磁盘空间
[color=#FFFFFF'][/color]
如果在UNIX系列操作系统上安装DB2 Universal Database v8.1,包括基于AIX的系统、HP-UX系统、Linux和Sun Solaris,硬件必须满足:
[color=#FFFFFF'][/color]
硬件
[color=#FFFFFF'][/color]
需求
[color=#FFFFFF'][/color]
处理器
AIX:IBM RISC/6000或者eServer pSeries
HP-UX:HP 9000系列700或800系统
Linux:Intel 32位、64位,S/390 9672或更高,Multiprise 3000,eServer z-Series
[color=#FFFFFF'][/color]
Solaris:基于Solaris UltraSPARC的计算机
内存
[color=#FFFFFF'][/color]
最小 256 MB RAM
可能需要更多的内存
[color=#FFFFFF'][/color]
硬盘空间
[color=#FFFFFF'][/color]
典型安装:最小450到550 MB
紧凑安装:最小350到400 MB
自定义安装:最小350到700 MB
1.2 软件需求
SQL Server 2000有6个版本:企业版,标准版,个人版,开发版,桌面引擎,以及SQL Server CE(一个和Windows CE兼容的版本),软件需求如下:
[color=#FFFFFF'][/color]
操作系统
企业版(Enterprise Edition)
[color=#FFFFFF'][/color]
标准版(Standard Edition)
[color=#FFFFFF'][/color]
个人版(Personal Edition)
开发版(Developer Edition)
桌面引擎(Desktop Engine)
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
SQL Server CE
[color=#FFFFFF'][/color]
Windows CE
X
X
[color=#FFFFFF'][/color]
X
X
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
X
[color=#FFFFFF'][/color]
√
Windows 9x
X
[color=#FFFFFF'][/color]
X
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
X
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
X
Windows NT 4.0 Workstation with Service Pack 5
X
X
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
√
√
X
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Windows NT 4.0 Server with Service Pack 5
√
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
√
√
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
X
[color=#FFFFFF'][/color]
Windows NT 4.0 Server Enterprise Edition with Service Pack 5
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
√
√
[color=#FFFFFF'][/color]
X
[color=#FFFFFF'][/color]
Windows 2000 Professional
[color=#FFFFFF'][/color]
X
[color=#FFFFFF'][/color]
X
√
√
[color=#FFFFFF'][/color]
√
X
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Windows 2000 Server
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
√
√
√
√
[color=#FFFFFF'][/color]
X
Windows 2000 Advanced Server
√
√
√
√
√
X
[color=#FFFFFF'][/color]
Windows 2000 DataCenter
√
[color=#FFFFFF'][/color]
√
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
√
X
[color=#FFFFFF'][/color]
Windows XP Professional
X
[color=#FFFFFF'][/color]
X
√
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
√
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
X
DB2 Universal Database v8.1有下面六个版本
DB2 Enterprise Server Edition (ESE)
DB2 Workgroup Server Edition (WSE)
DB2 Workgroup Server Unlimited Edition (WSUE)
[color=#FFFFFF'][/color]
DB2 Personal Edition (PE)
DB2 Universal Developer's Edition (UDE)
DB2 Personal Developer's Edition (PDE)
它们的软件需求如下:
平台
操作系统版本
[color=#FFFFFF'][/color]
要求安装的补丁
[color=#FFFFFF'][/color]
Windows
[color=#FFFFFF'][/color]
Windows NT 4.0
Service Pack 6a或更高
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Windows
Windows 2000
[color=#FFFFFF'][/color]
Windows Terminal Server需要Service Pack 2
[color=#FFFFFF'][/color]
Windows
Windows XP
-
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
AIX
[color=#FFFFFF'][/color]
AIX 4.3.3 (32-bit)
[color=#FFFFFF'][/color]
Maintenance Level 9或更高,以及APARs IY22308,Y32690,和IY33024
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
AIX
AIX 5L (32-bit)
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Maintenance Level 2或更高
[color=#FFFFFF'][/color]
AIX
AIX 5.1.0(32-bit)
[color=#FFFFFF'][/color]
Maintenance Level 2或更高,以及APARs IY31254,IY32217,IY32905,IY33023,和 IY29345
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
AIX
AIX 5.1.0 (64-bit)
[color=#FFFFFF'][/color]
Maintenance Level 2或更高,以及APARs IY31254,IY32217,IY32905,Y33023,和IY32466
[color=#FFFFFF'][/color]
HP-UX
[color=#FFFFFF'][/color]
HP-UX 11i
[color=#FFFFFF'][/color]
December 2001 GOLDBASE11i,
December 2001 GOLDAPPS11i bundles
Linux
[color=#FFFFFF'][/color]
Intel 32-bit:
kernel level 2.4.9或更高
[color=#FFFFFF'][/color]
glibc 2.2.4或更高
RPM 3或更高
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Intel 64-bit和z-Series:
[color=#FFFFFF'][/color]
Red Hat Linux 7.2
[color=#FFFFFF'][/color]
SuSE Linux SLES-7
-
Sun Solaris
Solaris 7 (32-bit)
[color=#FFFFFF'][/color]
patch 106327-10
Sun Solaris
[color=#FFFFFF'][/color]
Solaris 7 (64-bit)
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
patch 106300-11
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Sun Solaris
[color=#FFFFFF'][/color]
Solaris 8 (32-bit)
patch 108434-03 and 108528-12
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
Sun Solaris
[color=#FFFFFF'][/color]
Solaris 8 (64-bit)
[color=#FFFFFF'][/color]
patch 108435-03 and 108528-12
[color=#FFFFFF'][/color]
Sun Solaris
[color=#FFFFFF'][/color]
Solaris 9
-
[color=#FFFFFF'][/color]
二、性能比较
比较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测试)。
[color=#FFFFFF'][/color]
根据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
[color=#FFFFFF'][/color]
1
$7,500
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
$4,999
2
[color=#FFFFFF'][/color]
$15,000
$9,998
[color=#FFFFFF'][/color]
4
[color=#FFFFFF'][/color]
$30,000
[color=#FFFFFF'][/color]
$19,996
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
8
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
$60,000
$39,992
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
16
[color=#FFFFFF'][/color]
$120,000
$79,984
32
[color=#FFFFFF'][/color]
$240,000
$159,968
[color=#FFFFFF'][/color]
比较SQL Server 2000 Enterprise Edition(已包含OLAP和Data Mining)和IBM DB2 v8.1 Enterprise Edition加上OLAP、Data Mining:
CPU数量
[color=#FFFFFF'][/color]
IBM DB2 v8.1 Enterprise Edition
[color=#FFFFFF'][/color]
IBM DB2 v8.1 Enterprise Edition加上 OLAP和Data Mining
[color=#FFFFFF'][/color]
SQL Server 2000 Enterprise Edition
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
1
$25,000
[color=#FFFFFF'][/color]
$113,000
$19,999
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
2
$50,000
$126,000
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
$39,998
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
4
$100,000
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
$252,000
[color=#FFFFFF'][/color]
$79,996
[color=#FFFFFF'][/color]
8
$200,000
[color=#FFFFFF'][/color]
$504,000
[color=#FFFFFF'][/color]
$159,992
[color=#FFFFFF'][/color]
16
[color=#FFFFFF'][/color]
$400,000
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
$1,008,000
$319,984
[color=#FFFFFF'][/color]
32
[color=#FFFFFF'][/color]
$800,000
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
$2,016,000
[color=#FFFFFF'][/color]
$639,968
[color=#FFFFFF'][/color]
注意:上面对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
[color=#FFFFFF'][/color]
T-SQL
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
表
[color=#FFFFFF'][/color]
关系表,对象表,临时表
关系表,临时表
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
触发器
[color=#FFFFFF'][/color]
BEFORE触发器,AFTER触发器,INSTEAD OF触发器
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
AFTER触发器,INSTEAD OF触发器
[color=#FFFFFF'][/color]
存储过程
[color=#FFFFFF'][/color]
DB2 SQL dialect语句,Java方法,第三代语言(3GL)过程。
[color=#FFFFFF'][/color]
T-SQL语句
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
用户定义函数
[color=#FFFFFF'][/color]
外部标量函数,外部表函数,OLE DB外部表函数,临时函数,SQL标量、表和行函数
标量函数,嵌入式表-值函数,多语句表-值函数
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
数组
支持
[color=#FFFFFF'][/color]
不支持
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
4.2 限制
[color=#FFFFFF'][/color]
下表比较了SQL Server 2000和DB2 v8.1的限制:
[color=#FFFFFF'][/color]
功能
[color=#FFFFFF'][/color]
SQL Server 2000
IBM DB2 v8.1
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
列名称长度
128
128
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
索引名称长度
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
128
[color=#FFFFFF'][/color]
128
[color=#FFFFFF'][/color]
表名称长度
[color=#FFFFFF'][/color]
128
128
[color=#FFFFFF'][/color]
视图名称长度
128
128
[color=#FFFFFF'][/color]
游标名称长度
[color=#FFFFFF'][/color]
128
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
18
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
约束名称长度
128
18
密码长度
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
128
[color=#FFFFFF'][/color]
32
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
SQL变量长度
[color=#FFFFFF'][/color]
128
[color=#FFFFFF'][/color]
64
[color=#FFFFFF'][/color]
用户名称长度
128
30
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
max char()大小
8000
254
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
max varchar()大小
[color=#FFFFFF'][/color]
8000
32672
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
每个表的最大列数
1024
1012
[color=#FFFFFF'][/color]
每个索引的最大列数
[color=#FFFFFF'][/color]
16
16
[color=#FFFFFF'][/color]
每个表的最大索引数
250
32767
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
最长的SQL语句
[color=#FFFFFF'][/color]
16777216
[color=#FFFFFF'][/color]
65535
每个SELECT的列数
[color=#FFFFFF'][/color]
4096
1012
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
每个INSERT语句的列数
1024
[color=#FFFFFF'][/color]
1012
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
[color=#FFFFFF'][/color]
存储过程嵌套深度
[color=#FFFFFF'][/color]
32
16
五、结束语
[color=#FFFFFF'][/color]
一定要说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也一样。
[color=#FFFFFF'][/color]
SQL Server 2000的优势是:
SQL Server 2000要比DB2 v8.1廉价。
[color=#FFFFFF'][/color]
在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强大。
[color=#FFFFFF'][/color]
可以通过启动参数调整的配置项目较多。
[color=#FFFFFF'][/color]