本文从价格、性能、平台支持、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强大。
可以通过启动参数调整的配置项目较多。