免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13872 | 回复: 4
打印 上一主题 下一主题

ibm官方数据库比较:db2,oracle,sql server [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-05 16:10 |只看该作者 |倒序浏览
不能上传doc,只能帖在这了:
IBM DB2 UDB V8.1&
Oracle9i R2&
Microsoft SQL Server 2000&
技术比较分析

德国Bad Homburg,2003年8月

Jacqueline Bloemen eKnowledge Consulting
Guido Brunner Data Management Consulting

与美国Fourth Millennium技术有限公司合作

文档名:DBMS Comparison v3.0.doc
版本:3.0
文件状态:终稿
页数:51


目录
1 作者............................................................................................................................................3
2 执行概述......................................................................................................................5
3 范围..................................................................................................................................................8
4 产品架构...........................................................................................................10
4.1 IBM DB2 UNIVERSAL DATABASE VERSION 8 ....................................................................................10
4.2 ORACLE9I DBMS RELEASE 2 ..........................................................................................................12
4.3 MICROSOFT SQL SERVER 2000 ......................................................................................................13
5 比较...................................................................................................................................16
5.1 可扩展性..................................................................................................................................16
5.2 性能...............................................................................................................................19
5.3 可用性..................................................................................................................................22
5.4 可管理性..............................................................................................................................27
5.5 应用程序开发...........................................................................................................30
5.6 商务智能.................................................................................................................32
5.7 集成.................................................................................................................................36
5.8 连接和互操作性.............................................................................................38
5.9 内容服务和扩展.............................................................................................40
5.10 安全性......................................................................................................................................42
5.11 移动计算.......................................................................................................................43
5.12 随需应变和网格计算................................................................................................45
5.13 标准...................................................................................................................................47
6 附件..........................................................................................................................................50
6.1 缩略语..............................................................................................................................50

Microsoft&、WINDOWS&和SQL Server& 是Microsoft公司的注册商标。
IBM&、DB2&、DB2 Universal Database、DB2 Information Integrator、DB2 Intelligent Miner for Data是IBM公司的注册商标
ORACLE& 是ORACLE公司的注册商标.
所有其它产品或服务名称为各自公司的商标。



1 作者
Jacqueline Bloemen
Jacqueline (mailto:jacqueline.bloemen@attglobal.com) 从1980年开始进入IT行业并于1986年开始从事顾问工作。她专攻关系和数据管理技术,主要关注异构DBMS和平台的架构和数据设计、数据仓库和数据管理问题。最近研究的主题包括分析CRM和数据质量管理。

Guido Brunner
Guido (mailto:Guido@gb-dmc.de) 从1982年开始进入IT行业,从事数据仓库和数据管理工作–主要面向银行业的不同客户。他拥有丰富的主流DBMS经验,如Sybase、Informix、Microsoft SQL Server、DB2 (OS390 和NT) 和 Oracle。

作者非常感谢以下顾问专家,他们帮助澄清了许多深奥的技术问题并提供了相关领域的工作经验:

Thomas Froehlich
Thomas 是独立的DB2顾问,主要从事DB2 for OS/390 (从V2版本开始)和 多平台DB2(从V1.2版本开始)的研究工作,拥有丰富的事务处理和数据仓库系统的配置、移植、调整和管理方面的经验。目前正在使用SAP CRM系统和SAP BW系统来开展SAP R/3 on DB2 for OS/390实施项目。

Andrea Held
Andrea 从1992年开始进入计算机科学领域,专攻异构环境中的RDBMS。在这一领域获得的证书包括OCP和MSSQL DBA。Andrea在法兰克福应用科学大学任职,教授关系数据库,偶尔还发表了几本专业书刊。

Gregor V. Schoeck
Gregor 负责Dresdner Kleinwort Wasserstein 外来实体基于SQL Server 2000的全局报告数据仓库。Gregor 1967年出生于德国比勒费尔德,先后获得了数学和计算机科学硕士学位(德国汉诺威/ Peoria, IL USA)。

非常感谢William Miller和James Sobieski担任本文的编辑。

William Miller
最近12年来,William一直为许多大型德国和全球公司工作,担任DB2顾问,涉及DB2的所有领域-从概念数据库设计到低级别的监视和调整。他经常在全球的数据库会议上发表演讲。

James Sobieski
James Sobieski 是Fourth Millennium Technologies (FMT)的创始人。James擅长UNIX和工作站市场中的VLDB 数据仓库和OLTP系统;数据库架构和设计、系统转换和移植、性能和调整以及原型。James 拥有24年的系统和数据管理功能工作经验。

我们还应该感谢Fourth Millenium技术有限公司在这一研究过程中与我们密切合作:

Fourth Millennium技术有限公司 (FMT)是专门为复杂的数据管理问题提供解决方案的信息技术咨询公司。FMT提供技能娴熟和经验丰富的异构平台数据库专家。顾问们能够在Very Large、数据仓库、在线事务处理(OLTP)和OLAP系统的设计、开发和运行的所有阶段提供优秀的领导能力、渊博的知识和指导。

本研究报告仅供IBM使用。
2 执行概述
2002年88%以上的全球RDBMS总收入归三家厂商拥有。根据Gartner Group最新发布的一份研究报告1,Gartner声称IBM 占2002年 RDBMS 新许可收入的36.2%,Oracle 占33.9%, Microsoft 占18% 。但无论是许可收入,还是市场份额,都不能作为为企业应用程序选择数据库时的主导因素。未来的客户应考虑广泛的标准,包括大量的技术方面来评估市场上的数据库产品。本文通过比较IBM DB2 Universal Database V8.1、Oracle9i Release 2 和Microsoft SQL Server 2000,为高级技术产品评估人员提供帮助。关于技术标准的详细清单(具有100多条详细标准)已被分为13类,允许人们从技术角度来进行比较。必须注意的是,尽管本文包括内置功能和付费选件的相关信息,但我们的评估忽略了所有TCO,应仅从技术角度予以考虑。

数据库技术已经非常成熟。在支持可靠和灵活的数据访问方面,市场领先的DBMS产品提供许多远胜于传统特性的特性。虽然这一点对用户来说极具吸引力,但同时也增加了产品的复杂性。数据库已经发展到能够支持海量的数据和/或高端事务处理。同时这也增加了系统的整体复杂性。个人用户将需要了解他/她实际上需要哪些特性和功能来响应企业需求。所有这三种DBMS产品都是成熟的产品而且非常稳定。它们都可以满足主要的业务需求,通常建议用于专业用途。这三种产品都对当前的技术问题做出了响应(实施程度不同而已),它们在本质上不存在任何差距。主要的差异来源于高端技术需求和产品创新。

SQL Server作为紧密集成到Windows应用程序开发平台中的高效产品而为人们所熟知。过去,人们眼中的SQL Server 是小规模、有时不稳定、不能提供其它领先DBMS提供的丰富功能。随着SQL Server 2000的上市,Microsoft 解决了其中一些问题。SQL Server紧密集成到基于Windows标准的应用程序开发工具中。SQL Server 在将基本BI工具和功能整合到该产品中发挥了非常重要的作用。但必须从可扩展性和性能的角度来观察在BI环境中的运行能力。尽管SQL Server为OLTP应用程序提供足够的支持和性能(由众多成功的TPC基准支持),但它仍不能满足需要处理海量数据的大规模、查询密集的应用程序的需求,这对于BI应用程序来说通常如此。但是,由于整体复杂性适度以及令人印象深刻的自主功能,SQL Server可以为其支持的环境(Windows平台上的中小型应用程序)提供非常好的管理。

当关系模型的扩展不再是SQL Server的优势时,Oracle 向它们的产品增加了大量O/R特性,为内容和扩展提供全面支持。Oracle的最大优势在于可用性和安全性。Oracle 联合 DB2一同解决计划和突发的宕机。在安全性管理方面,该数据库支持竞争DBMS产品依赖其它应用程序层(即操作系统)提供的某些特性(主要涉及鉴权)。尽管我们不能把这一结果认为是一种优势,但Oracle 还提供DB2和SQL Server使用其标记安全性无法媲美的安全性。在比较过程中, Oracle是复杂性最高的数据库,需要支持许多广泛使用的特性,而且还对管理产生负面影响。根据特性调查结果和基准,我们发现Oracle的性能优势在于支持中型到相对大规模的BI应用程序。

1 Gartner announcement on 21 May 2003

与Oracle将所有数据类型汇总到数据库中的集成策略相反,DB2支持集成存储在DB2自身内外的信息,当扩展数据库和/或集成不同类型的信息源时可以提供最大的灵活性。由于这一策略,DB2旨在成为企业数据的唯一访问点。尽管DB2自身的BI产品不像SQL Server那么丰富,但众多一流的合作伙伴产品可以扩展提供的开放、架构上精心设计的框架。结合DB2在可扩展性和性能领域的明显优势(特性和基准),DB2可以被认为是大规模商务智能应用程序的全面领导者。由于提供广泛的特性,DB2的复杂性也相对比较高。在V8.1版本中,DB2 基于全面精心实施的架构和许多自主特性,在复杂性和适当的可管理性之间实现了很好的平衡。


总之,我们的评估显示以下结果:
领域        领导产品        竞争产品        尾随产品
可扩展性        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
性能        DB2 UDB V8.1        Oracle9i R2 /
SQL Server 20002       
可用性
计划宕机
突发宕机       
        Oracle9i R2 / DB2 UDB V8.1                SQL Server 2000
        Oracle9i R2 / DB2 UDB V8.1                SQL Server 2000
可管理性
中小型应用
大中型应用       
        SQL Server 2000        DB2 UDB V8.1        Oracle9i R2
        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
应用程序开发
内置DBMS 特性
IDE 和 AD社区       
        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
        本文不包括详细比较
商务智能        SQL Server 20003 / DB2 UDB V8.1                Oracle9i R2
集成        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
连接和互操作性        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
内容服务和扩展        DB2 UDB V8.1 / Oracle9i R2                SQL Server 2000
安全性        Oracle9i R2        DB2 UDB V8.1 / SQL Server 2000       
移动计算        所有3个DBMS产品都支持
(本文不提供详细比较)
网格计算和随需应变        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
标准        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000

图1 评估结果汇总
2 SQL Server 优势在中小型OLTP,Oracle 优势在BI
3 SQL Server 处理海量数据的能力有限(见性能和可扩展性)

所有企业并不对我们评估的所有领域感兴趣,而且并不是所有企业都需要高端应用支持。对于个人的决策制订来说,我们建议根据您个人的需求来定制标准清单并分配优先级。确定您需要支持的应用类型,考虑类别分组(或者类别子集)来反映这些应用类型和向您的决策清单增加TCO。

3 范围
IBM、Oracle 和 Microsoft是作为DBMS的市场领导者而为人们所熟知。Gartner Group 最近公布的一份调研报告中证实了这一点4。市场份额将不再是为企业应用选择数据库的主导因素。本方旨在使用市场领导者IBM (DB2 UDB V8.1)、Oracle(Oracle9i R2)和Microsoft (SQL Server 2000)的旗舰DBMS产品的技术参考信息和比较来为高级技术产品评估人员提供支持。讨论主要关注Linux、UNIX 和Windows平台。.

为了进行研究,我们将详尽的技术标准清单分类如下:
        可扩展性
        性能
        可用性
        管理
        应用程序开发
        商务智能
        集成
        连接和互操作性
        内容服务和扩展
        安全性
        移动应用
        随需应变和网格计算
        标准

详细的清单包括大约150项标准。这些标准已经被研究和记录。但是,本文并没有记录我们所有的调查结果。我们发现关注最重要的结果并简要报告很重要。我们欢迎任何需要了解更广泛的调查结果,或对深入讨论感兴趣的个人,他们可以与作者直接联系。

我们使用安装了所有这三个DBMS产品的实践环境,我们拥有丰富的项目经验并与其它DBA讨论了许多技术方面的问题,这有助于提供一个真实的运行环境。我们使用每家数据库厂商提供的大量技术产品文档来进行详尽的调研。我们还将从厂商网站以及其它单独资料来源找到的众多文件中的有用信息放在了网站上。

本文讨论的一些领域涉及个人观点的架构或战略特性。我们尽最大努力来保持中立,但有时发现读者共享个人观点很重要。我们希望充分说明了我们在某些发展方向提出的建议。

讨论的其它方面与其它工具类别密切相关,如集成、应用开发或网格计算。讨论主要关注这些领域的内置数据库支持,不对厂商或厂商合作伙伴必须提供的任何附加产品进行评估。

我们希望读者能够获得有助于决策制订的重要信息。但必须了解的一点是不应忽略与数据库产品选择相关的两个重大方面。

首先,我们不能根据单个企业和应用需求来为标准级别分配优先级,这一点很明显。必须使用各种条件来完成整个标准清单。当根据您的个人需求来为数据库特性计分时,实践证明,研究DBMS支持和为标准分配优先级主要需要的应用程序类型可能会有所帮助。我们可以提供实现这一目标的可扩展的记分卡来为大量的客户提供服务。
4 2003年5月21日 Gartner 公告

其次,我们没有根据总投资成本来进行评估。虽然我们提供了产品特性和产品选件的参考信息,但在技术讨论中并没有考虑附加选件的成本。我们提供了单独的多篇讨论TCO的文章。为了评测您企业的TCO,您将需要对上述讨论和厂商提供的定制报价分配优先级。

总之,本文旨在提供一定程度上的关于产品评估的技术见解。为了制定全面的决策, 正如上面所述,我们建议使用个人记分卡,结合估计的企业TCO的计算。

最后,我们认为有义务重申一点,正在讨论的所有三种DBMS产品都是成熟的产品而且十分稳定。它们都可以满足主要的业务需求,通常建议作为专业用途使用。它们都对当前的技术问题做出了响应(实施程度不同而已),在本质上无任何差距,它们的差异来源于高端技术需求和产品创新。

4 产品架构
4.1 IBM DB2 Universal Database Version 8
DB2 Universal Database (UDB) –IBM五大基本软件支柱之一– 合并到从数据库管理到数据管理的综合解决方案的最近几个版本中。DB2 不再仅仅是一种产品,它作为一种与IBM所有数据管理功能相关的产品的品牌出现。

DB2架构遵循以下主要设计规则:
        DB2应是公司业务数据的唯一访问点–即使数据存储在数据库中或是外部也是如此。
        DBMS扩展可以与IBM和第三方厂商的对象-关系特性集成
        使用大型SMP设备,单独节点群集以及这些节点上的表格数据分段支持大型OLTP和BI应用程序。
        使用向导、专家和顾问以及自愈和自我配置特性来减少管理工作。

DB2 数据库产品家族包括异构平台,可以从手持设备向上扩展到大型机:
        Linux、UNIX 和Windows DB2 Universal Database (DB2 UDB) 集成到多个版本中:
        在单用户模式中使用的DB2 Universal Database Personal Edition(DB2 UDB PE)
        为工作组或部门中共享的应用程序和数据提供的DB2 Universal Database Workgroup Server Edition 和 DB2 Universal Database Workgroup Server Unlimited Edition(DB2 UDB WSE)
        为复杂的配置和大型的数据库需求,从单处理器到最大的SMP和MPP 提供的 DB2 Universal Database Enterprise Server Edition (DB2 UDB ESE)
        可选的数据库分段特性(DPF)支持跨多台服务器进行分段
        DB2 UDB Data Warehouse Enterprise Edition 提供大量集成的商务智能产品,包括DB2 UDB ESE、分布式分段特性、Query Patroller 、DB2 Warehouse Manager、DB2 Cube Views、DB2 Intelligent Miner extenders、Office Connect和Information Integrator (DB2 UDB DWEE)。
        DB2 UDB Data Warehouse Standard Edition包含为中小型企业提供的DB2 UDB DWEE的子集
        DB2 Universal Database Express Edition 为中小型企业专门定制的全特性关系数据库
        DB2 Universal Database for AS/400 (DB2 UDB for AS/400)
        DB2 Universal Database for z/OS (DB2 UDB for z/OS)
        DB2 for VSE & VM
        为手持设备操作环境中的手持设备提供的DB2 Everyplace

DB2 提供众多的向导和顾问来为开发人员和管理人员提供支持并提供多种实例。使用手册非常详尽,它是非常重要的信息来源。导航并不总是直观,有时很难精确确定您在文件中查找的信息。在线帮助界面非常完善而且其它红皮书深入讨论了特殊的特性。

Linux、UNIX 和 Windows DB2 UDB 版本8 增强了多个领域–以下列出了最重要的领域:
        可管理性和使用性
        存储管理工具
        Recovery Expert5
        Memory Visualizer
        运行状态中心
        High Performance Unload6
        负载增强
        Package cache flush
        记录增强
        备份和恢复增强
        新管理通知日志
        程序包版本ID
        数据库维护模式:QUIESCE
        向REORGCHK增加的ON SCHEMA 功能
        RUNSTATS 指令增强
        改进的自动死锁事件监视
        Type-2 索引
        DB2 管理服务器(DAS) 增强
        安装和配置
        DB2 设置向导增强
        新配置助理
        Windows平台上支持多种语言安装
        UNIX 多服务水平安装
        新向导和GUI工具
        检查数据库架构完整性的INSPECT指令
        DB2跟踪工具增强
        性能和可扩展性
        预取增强
        Page cleaner I/O 改进
        具有多个分段的数据库中的目录和鉴权缓存
        Java UDF和存储的程序的线程
        连接集中器
        物化的查询表增强,包括呢称 MQT和增强的维护
        空值和默认值压缩
        通过UNION ALL视图插入
        记录增强,以改进可扩展性
        复制中心
        可用性
        在线表格装载
        在线部署表确认,以提高可用性
        在线索引确认
        在线配置参数
        在线缓冲池创建、删除和重新调整大小
        装载悬挂期间物化的查询表增加的维护
        改进的DMS容器运行
        连接和集成
        DB2 Information Integrator
        多个捕获程序
        复制监视
        DB2 Data Links Manager复制增强
        DB2 Data Links Manager增强
        DB2 XML Extender 增强
        DB2 Net Search Extender
        商务智能
        多维群集表
        关于呢称的物化查询表
        DB2 Data Warehouse Manager增强
        DB2 OLAP Server 和DB2 OLAP Integration Server 更改
        DB2 Spatial Extender 增强
        DB2 Cube Views
        应用程序开发
        面向存储的程序和用户定义的功能的新开发中心IDE的开发
        新SQL 助理-构建复杂查询的向导
        方法的动态分派
        新调用层接口 (CLI) 装载功能
        声明的全局临时表增强
        IBM OLE DB Provider for DB2
        Web 业务应用程序
        JDBC驱动程序增强
        通过DB2 Universal Developer’s Edition 提供 WebSphere Studio 和 WebSphere Application Server
        DB2 XML支持增强
        .NET Data Provider

5 Recovery Expert是收费的附加工具
6 High Performance Unload是收费的附加工具

4.2 Oracle9i DBMS Release 2
Oracle 9i 不仅仅表示数据库服务器的版本名称,它还是围绕核心服务器的整套产品的家族名称。这些产品包括:
        Oracle9i Application Server
        Oracle9i DBMS
        Oracle9i Developer Suite

这一套产品正在向紧密集成发展。Oracle9i Application Server和Oracle9i DBMS之间的分界线越来越扩散。但是, Oracle9i DBMS 和Oracle9i Application Server都可以与第三方产品协作,当然不是采用这一深入集成的方法。

至于Oracle系列中的其它产品,很明显,Oracle 努力为整个公司提供一整套软件,借助于紧密集成的优势,从而它们的客户无需考虑其它厂商的产品。

Oracle9i DBMS 通常可以在所有主要平台上使用(包括MVS 和BS2000),提供四个版本:
        Oracle 9i Standard Edition,面向工作组和部门级应用程序
        Oracle 9i Enterprise Edition,面向公司
        Oracle 9i Personal Edition,支持单用户开发和部署
        Oracle 9i Lite,支持大多数时间不在公司办公的移动用户

我们从Oracle环境开始,对于Oracle 初学者来说,它看起来是很复杂– 要想成为Oracle专家,必须花费比其它产品更多的时间。本文对初学者非常有用。

Oracle9i 版本2增强了大多数领域– 下面列出最重要的领域:
可扩展性和性能增强
        RAC现在可以单个系统来处理
        快速拆分分段
        为共享和专用服务器提供的相同的SHUTDOWN IMMEDIATE行为
可用性增强
        数据保护使创建、监视和管理备用数据库工作更轻松
        服务器参数文件备份
        更改数据库结构后控制文件自动备份
        新Utility:DBNEWID,使用新数据库标识的数据库恢复
        Legato NetWorker 与Oracle9i捆绑
可管理性增强
        自动服务器参数文件备份和配置
        性能调整智能顾问
        实际运行级查询统计
        优化器统计数据的动态抽样
        本地管理的系统表格空间
        在Oracle Enterprise Manager克隆数据库
        LogMiner 增强
        最大限度地减少升级的生产影响
        表格功能增强
        Oracle Net Services增强
        分段级统计数据收集
        Real Application Clusters Guard II
信息集成
        Oracle 信息流
商务智能
        Oracle OLAP 选件增强
        商务智能可扩展性
安全性
        数据库创建时用户SYS和SYSTEM密码
        企业用户安全性:简化用户设置和管理
        企业用户安全性:用户移植实用程序
        支持高级加密标准(AES)
        强大的鉴权:支持RADIUS鉴权
        公共密钥基础架构:SSL 硬件加速
        Oracle Net Services中的目录命名访问控制
互联网内容管理
        所有类型的内容的存储、管理和聚合
        Oracle 维数据
应用程序开发
        Workspace Manager
        XML 和XML DB
        Oracle XML DB 特性
        开放服务器端PL/SQL 和java调试
        对象类型转换器(OTT) 标记:承载转发用户增加的程序代码

4.3 Microsoft SQL Server 2000
SQL Server 2000 不仅仅代表Microsoft的关系数据库产品,它还代表品牌MS分析服务器包括的多维Cube技术。

事实是战略仅支持Windows操作系统以及Microsoft开发中心提供的所有软件包。这限制了软件包在Windows平台上的可用性,但Microsoft公司关于此类仅在Windows上运行的软件的市场份额在不断增加。从技术的角度看,这要求与基本操作系统紧密集成和了解它们。但还存在其它原因,即价格。

与操作系统集成以及与Microsoft产品系列中其它软件组件集成是设计时必须考虑的主要规则之一。基于Microsoft的开发人员家庭庞大,而且对后台DBMS的紧密集成非常感兴趣,这一点也不令人惊讶。

该数据库架构主要关注管理BI应用程序的关系和多维数据的结构化数据– SQL Server无需集成完全面向对象的应用。

在高端,SQL Server集成Microsoft Cluster Service来提供高度可用的应用程序和系统。为了在大型数据库和/或大量用户中实现高性能,SQL Server支持SMP设备和多台设备的联合。

SQL Server 提供多个版本:
        SQL Server 2000 Standard Edition是建议中小型企业使用的版本,可以在多达4个CPU和2GB RAM的对称多处理(SMP)系统上使用。
        SQL Server 2000 Enterprise Edition 包含一整套数据库和分析功能,支持多种环境,从单处理器到32位设备上多达32个处理器和64GB RAM以及64位设备上64个处理器和512GB RAM的SMP系统。而且它还可以在群集环境中使用。
        SQL Server 2000 Personal Edition 最适用于移动用户或独立运行的应用(最大2个处理器和2GB RAM)。
        SQL Server 2000 Developer Edition 允许开发人员在SQL Server上开发任何类型的应用。
        SQL Server 2000 Evaluation Edition 是一种有时间限制的企业版本。
        SQL Server 2000 Windows CE Edition 是用于迅速开发可以将企业管理功能扩展到设备的应用的小巧数据库。
        SQL Server 2000 Desktop Engine 是SQL Server 关系数据库引擎可重新分发的版本(最大2个处理器和2GB RAM)。

SQL Servers DBA 用户界面全部采用Windows风格设计的直观界面。在这一环境中,Windows 初学者感到很舒适并可以继续工作。SQL Server 文件的用户界面非常有用,而且使用指南为您提供各种主题的简便介绍。

SQL Server 2000 是取代SQL Server 7的主要版本。下面列出了重要的新功能和改进的功能:
可管理性和可使用性
        规定备份和恢复选项的新模式
        复制数据库向导
        SQL Profiler现在支持基于大小和基于时间的跟踪
        日志传送的图形管理改进
        新元数据浏览器
        XML 编码,元数据交互的新实施
        对象浏览器,允许您遍览数据库对象和获得数据库对象的相关信息
安装和配置
        同一台计算机上SQL Server的多个实例
性能和可扩展性
        分布式分段的视图
        索引视图
        已计算列索引
        支持64GB内存
        small text、ntext 和 image 值直接放在数据行中而不是单独的页面中。
        共享扫描
可用性
        故障切换群集增强
        DBCC 现在充分利用多个处理器的优势
        在线索引重新组织
连接和集成
        支持OLE DB Provider for Exchange 和Microsoft OLE DB Provider for Microsoft Directory Services
        改进重新复制功能,如合并和事务处理重新复制
        以XML格式返回行集合
        使用XML来更新、插入和删除关系表中的行
内容和扩展
        可以使用用户定义的功能来增强数据库功能
        新数据类型bigint、sql_variant和table (结果集合的临时存储)
        纯文本查询现在包括更改跟踪和图像过滤
商务智能
        多阶段数据提取
        参数化查询
        将数据挖掘功能集成到分析服务器中
        新Cube类型和增强的Cube功能
        新标准和分级类型和功能
应用程序开发
        Instead-of 和 after 触发器
        级联参考完整性限制
安全性
        支持Kerberos鉴权

SQL Server 2000 已经上市多年了,Microsoft 正在开发新的版本(代号Yukon)。最近在2003年6月在TechEd 通告Yukon 预计将在2004年下半年推出。众所周知的一件事是这一版本将主要关注:
        与.NET 和Microsoft 开发人员工具更紧密的集成
        建立端到端商务智能平台,包括集成的etl、报告、在线分析处理和数据挖掘
        增强高度可用的应用和系统的可用性
        增强可管理性
        增强互操作性

5 比较
通常,对DBMS进行比较不是一项简单的工作,这是原因:
        数据库功能丰富而且非常复杂,全面比较是一项长期工作
        一些功能的价值只能通过实践体验和基准(即性能影响)来确定
        由于架构方法和产品哲学方面潜在的不同实施深度以及普通差异,很难对功能级别进行比较
        通常很难直接比较详尽的功能

正如“范围”一章所述,我们确定了14项与评估数据库技术相关的主要领域。下面将用一个章节来讨论每个领域。我们不向读者提供所有相关产品功能的完整清单。作者将重点放在阐述数据库产品重要的优势和区别上。

在每章结尾,我们将指定这三种产品的排名次序。需要知道的一点是这些排名非常接近。

5.1可扩展性
可扩展性是DBMS满足以下领域瞬息万变的需求的能力:
        用户数量
        数据量
        事务处理复杂性

人们希望建立可扩展功能,它对应用和用户的影响最小且精确细分。业务因素经常导致工作量大小方面的变化。当部署新计划时您可能喜欢“大思维、小起点”方法。即如果您开发了新业务,您将需要向您的基础架构增加功能来承载增加的事务处理。由于历史数据的收集,商务智能应用是非常普遍的数据量不断增长的例子。通常,随着业务的增长可扩展性是必需的,这样可以保护对应用程序的投资。为了适应瞬息万变的工作量,您需要考虑更换或更改以下方面:
        硬件
        操作系统
        数据库配置和设计

什么因素影响可扩展性? 不同的应用程序类型有不同的影响因素。为了实现可扩展性,OLTP需要的DBMS功能与BI应用程序不同。在BI应用程序中,增加功能来减少查询的复杂性意味着扩展查询内并行机制(也许是使用分段间并行机制来覆盖额外的节点),而在OLTP环境中,要实现更高的“每秒事务处理”主要依赖额外的处理器在同一时间内处理更多的事务(查询间并行机制)。应用程序的可扩展性方面的有效数据分发也稍有不同:在BI应用程序中,您希望实现最佳的数据平衡以支持最大只读查询内并行机制,而OLTP依靠各个数据行最佳的读写存取来最大化并行机制。

为了获得能够满足您事务处理需求的最佳架构,需要考虑众多不同的方案。在第一个实例中,物理处理器的工作分派由操作系统来管理。但DBMS自身支持并行机制:通过生成便于操作系统分派的子任务。因而必须考虑单独或联合使用SMP7 和MPP8。群集MPP DBMS 的实施基于Shared-Nothing 或 Shared-Disk 方法9。每种方法都有自己的优势和不足,需要根据您需要支持的应用程序类型来加以权衡。当考虑群集和MPP时,您将需要考虑增加成本和管理复杂性。大多数情况下,SMP 解决方案将足以满足OLTP的需求。扩展来承载更高的事务处理将主要依靠向物理机器增加处理器。基于群集的MPP通常能够很好地解决BI应用程序环境中复杂查询问题。在这种情况下,扩展来支持更高的并行机制或增长的数据量将更加复杂。

7SMP “对称处理器,”其中一个节点可以使用多个处理器
8MPP “批量并行处理。”MPP 结合众多不同的物理节点来形成群集,在应用程序看来,它将是一个逻辑节点

在这一评审中,所有DBMS产品都找到了解决这些问题的答案。所有这三家DB厂商都支持SMP并行机制。值得注意的是只有两家(使用Shared-Nothing架构的DB2和使用Shared-Disk架构的Oracle)认可群集来提供MPP可扩展性的存在性:这些可以用于实施准群集数据库环境,其中数据库松散地进行群集。Oracle 和 DB2 基于他们的群集功能都支持相同的数据库设计(使用UNION-ALL视图)。

如果使用系统的DBMS的功能来对数据进行分段,那么这三种产品可以更多地并行运行应用程序。对数据进行分段允许物理上以这样一种方式来进行分布,即并行机制增加,性能提升和 – 某些情况下- 并行运行最大化。分段战术的选择将在根据预计的工作量确定的方案中间:它将是查询内主导的战术还是查询间主导的战术。查询内战术寻找最佳的数据扩展来支持高度并行化的查询,即面向BI应用程序。查询间战术希望使用基于值的分组数据分布在支持OLTP最常见的分段中实现自治。

如果使用的DBMS 是SQL Server,那么可以了解分段的影响,但只能使用用户调整的技术。用户必须定义联合数据库,这样数据通过安排好的值来进行分布。遗憾的是,由于使用OLE DB API,这导致接入开销。必须注意的是查询预测这将限制单一节点的接入。它还使数据库实例的管理复杂化。更改数据库布局需要更改“union-all”视图,这是路由和管理联合数据库必需的,而且对该应用不透明。尽管SQL Server 支持关系 OLAP 存储,但不提供任何特殊的群集方法。但是,Cube(关系,多维或组合)逻辑上可以进行分段,支持各个分段有自己的数据源并部署在远程服务器上。进行细分扩展是可能的,但在支持Windows操作系统中受限于硬件。

DB2 和Oracle 都支持SMP和MPP实施中使用的表格数据的物理分段。Oracle的分段功能10提供范围、显示 (Oracle9i R2中的最新功能)、散列和组合分段。尽管范围和显示分段将对处理大量数据的OLTP产生积极影响,但是范围类型查询和支持数据的迅速转入/转出(即增加数据的新月份和删除老月份),散列分段可以提升复杂查询和大数据量的并行处理能力。使用组合分段,您可以结合范围和显示或散列技术。DB2 支持MDC11 :一项支持范围扫描中物理上调整数据的技术。MDC 支持装载实用程序来重新使用以前删除的数据的单元,从而实现表格中空间的重新使用(在线)。MDC 拥有优于Oracle 中范围和显示分段特性的可管理性优势,即向分段分配数据、索引创建和重组以及基于数据块的缓冲池带来的性能优势。而且范围和显示分段可以通过物理上独立的表格,通过与Union All 视图的松散结合来实现:这些(V8.1 和更高版本)都完全可更新。

9在Shared-Nothing架构中,每个节点拥有和管理自己的资源,包括其存取的数据和DB 缓存。在Shared-Disk架构,数据由所有节点共享。在节点之间进行缓存调整通常需要缓存共享。
10 Oracle的分段选件为收费选件。
11 MDC 多维群集

DB2 的Shared-Nothing 架构(面向MPP 群集)的主要目的是有效允许数据库增长超出单台服务器的功能的范畴。DB2选择这种方法旨在解决 Linux、UNIX 和Windows 环境中基于硬件的分布式锁定(locking)机制(与OS/390上的联合工具一样)缺乏问题。MPP 群集通常用于对大量数据进行复杂的决策支持查询。DPF12 使用散列算法来向分段分布数据。DBA负责分段关键字的定义,但 DBMS 分配各行的物理分布。通常它提供更广泛的物理数据。除非正在处理配置的数据13,否则加入大表格需要通过TCP/IP进行交叉分段通信。Transpartition 冗余(基于DB2的MQT 技术复制的表格)经常用于减少查找类型表格的交叉分段流量。散列某些时候会与预先构建的集成应用的顺序或排序需求发生冲突。使用DB2 DPF时,尽管许多工作可以从一个中心分段来管理,但各个分段仍旧需要增加一些额外的工作。由于能够在多个硬件和操作系统上运行,DB2的shared nothing架构支持精确细分的扩展。

Oracle9i的 RAC14 支持数据存取和更改的跨节点同步(同常在Shared-Disk架构中)。当发生以下现象时需要RAC:
        群集环境中需要MPP时
        需要可用性时

在读/写操作情况下,节点间记录锁定通信会削弱可扩展性。这是为什么向与Oracle9i 一同推出的新RAC架构重写Oracle Parallel Server (OPS)的主要原因。但是,Oracle 建议在群集配置中使用同类硬件并指明配置已经通过验证可以与RAC数据库一同使用。在高事务处理负荷OLTP环境中,您可以通过整合应用程序分段来减少RAC开销。但是,当需要进行扩展以满足更高的需求时,某些时候这将导致需要对数据库和应用程序进行重新设计。客户对采用RAC犹豫不决。似乎在大多数情况下,客户是根据高可用性需求来决定RAC。

大多数TPC性能基准都不可以直接进行比较,因此不适用于评测可扩展性。这是因为厂商很少在使用不同数量CPU的同类硬件上运行TPC基准。同样,没有任何两家厂商运行使用两种不同的RDBMS引擎的同类硬件基准。最终大多数TPC测试不提供希望的可扩展性比较。IBM的基准采用具有500 GB数据的1节点24路系统,并与其的双倍计算设备-每个具有1 TB数据的2 节点24路系统进行比较。据说整体可扩展性达95% 以上。

DB2 和 Oracle 可以提供到TB级数据库和每配置8个以上CPU的重大的可展性。SQL Server 位居这些配置方案之后,平均4路 SMP服务器和低于500GB的数据库。其弱点在于不能提供群集的数据库(主要面向BI) – 其联合数据库概念不能正确对特的缺点。Oracle的分段选件可以满足OLTP和BI数据库需求。DB2的shared-nothing群集主要用于大规模数据仓库15。根据Survey.Com16的高端数据仓库报告,“Oracle的数据仓库和市场向平均2.6 TB 大小的较小规模磁盘配置发展。Oracle 部署都在250GB 以下, 缩短了25%的部署时间,很少超过10 TB以上。 IBM (和NCR)安装相当于最大规模的类别,这两者带来了10%以上的超过20TB的客户。DB2 EEE 平均大小为6.0 TB17。”

任何情况下,可扩展性将不仅仅是DBMS的问题。数据库设计是管理负载的中心因素。它需要满足应用需求。事务处理和数据的数量越大,查询就越复杂,设计决策就变得更加重要。没有任何一种评审的DBMS功能能够减轻随着数据库的扩展,DBA进行详细的数据库设计和更改负担。这与选择的架构无关。通常,与SMP相比,群集系统会增加设计和管理成本。这可以应用于shared-nothing 和a shared-disk 部署。但是,这可能是提供需要的可扩展性必需的。

根本上我们认为在关注高端可扩展性方面DB2领先于Oracle, SQL Server不能满足SMB以外的可扩展性需求。

12 DPF 分布面式分段特性,收费选件
13 “配置是包含同一数据库分段中相关数据的不同表格的行的布置。… 如果表格部署在多个分段的数据库分段组中,在分段关键字中拥有相同的列数而且如果相应列的数据类型为分段兼容,那么考虑对表格进行配置。具有相同分段关键字值的配置的表格中的行部署在同一数据库分段中。” (来源:IBM DB2 UDB “管理指南:规划”)
14 RAC Real Application Clusters,收费选件
15 使用一个SMP可以充分满足多数OLTP应用的可扩展性需求。
16 Survey.Com,2002年商务智能和数据仓库高端竞争分析报告,2002年8月

5.2 性能
从用户的角度看,性能是使用数据库内容时最重要的方面之一。关系数据库系统的根本要求是允许应用程序公式化需要或更改“什么”信息,而不是告诉DBMS “为什么。”数据库自身负责确定存取这些数据的最佳战略。与性能有关的是数据库而不是用户。当需要处理日益增加的数据量和使用大量集成的应用程序(OLTP 和BI)而且不可能对应用程序的级别进行调整时这一需求变得更加重要。

很明显,DBMS 必须提供大量的功能来支持高速数据存取。它必须拥有重要的智能和启发式功能来确定众多可用选件中最佳的存取战略,这最适用于运行时间的这一当前要求。

支持不同存取方法的数据的物理组织结构18和索引是获得高性能的根本。随着数据量的增加和存取越来越复杂,减轻重复、计算密集的功能,即聚合或复杂的联合,变得不可或缺。随着IT系统继续允许越来越多的用户通过网络存取高速增长的大量数据,精确细分的数据存取安全性也在增长– 但不会增加重要的查询处理开销。很少了解物理计划表示的集成应用程序经常向数据库发送编写糟糕的,可能是机器生成的SQL 。在此,DBMS 查询重新编写功能可以更好或更糟地运行数据库查询。最后但并不是最不重要的,提供丰富的数据库对象知识(元数据)来支持智能优化是提供最快响应时间,同时把“为什么”留给数据库管理员的关键。

与可扩展性类似,不同的应用程序支持高性能的特性也不同。在OLTP中,单行的快速和直接的读写存取来支持最大化并行运行是关键,BI 应用程序 需要高度并行的处理来支持主要为读模式处理大量数据的复杂查询。集成应用程序使用多种功能来提供性能调整以与专门为应用程序进行的部署协作,即信息元数据和应用程序维持的汇总表。

DB2 使用其 Shared-Nothing 架构来提供满足高性能应用需求的最适合的整体架构。Shared-Nothing 可以实现最高程度的并行机制,非常有利于BI应用。对于OLTP应用程序来说, SMP 硬件架构拥有优于MPP群集的性能优势。DB2可以充分利用使用查询间并行机制的多个处理器。

17 该份报告比较DB2 和Oracle 与NCR的Teradata,此时平均为6.5 TB
18 表格数据分段选件及它们支持并行运行的能力在前面“可扩展性”一章中已经讨论,在此不再重复。

与DB2类似,Oracle 支持SMP 查询间和MPP查询内并行机制,但由于其shared-disk 架构缺乏shared-nothing可以实现的并行机制级别。Oracle提供众多设计方案来支持不同的应用程序需求,包括 OLTP 和BI。当在OLTP环境中使用RAC时,尽管对节点缓存同步进行了优化,但性能仍比不上shared-nothing 架构。Oracle的多版本读模式及其相关的有限读锁定有助于减少只读事务处理的开销。在OLTP环境中,也许以受限制的数据/事务处理完整性为代价才能实现这一结果。

SQL Server 可以并行查询(查询内和查询间) 以及DML语句的where子句。在缺乏全面群集支持的情况下,DBMS 不提供真正的分段间并行机制。与DB2 和Oracle相反,SQL Server在只有1个处理器的节点上不支持并行机制(适用于I/O密集的处理)。

为了索引关系数据,DB2 允许人们创建各种类型的B树索引,以及需要时在查询期间‘自由’为ANDing 和ORing 生成位图索引。DB2的B树索引可以同时支持前向和后向扫描,可以在关键字中包含其它数据列,以避免存取查询处理需要的数据。这些索引可以基于记录映射关键字到各条记录,或基于数据块映射关键字群集的数据。索引扩展进一步支持复杂数据类型的索引(例如维数据19)。使用基于记录的群集索引可以实现单维数据群集,而使用V8中多维群集功能一同推出的基于数据块的索引允许数据物理上同时沿着多维进行群集,而且由于明显的较小规模,可以提供更快的索引接入和减少维护。

Oracle 提供众多索引类型供您选择20。索引不在运行时生成,如在DB2中。在索引设计中满足所有需求非常难以实现,而且索引需要更多的空间。在物理群集方面,Oracle 可以根据通用列值来群集表格。Oracle 建议这一功能仅用于静态大小的表格。除了TPC-C基准以外,这一特性似乎不能广泛应用。
与DB2类似,SQL Server 存储所有索引为B树,但不支持后向指针和不支持“自由”生成其它类型。SQL Server中的群集索引包含所有数据行,使得在根据群集的索引列(多列)来进行选择时读数据显得多此一举。

数据存取安全性通过使用Oracle 标记安全性的特殊方式予以解决。性能开销低于传统数据安全性方法的开销,即选择性视图或联合您可以在DB2和SQL Server中使用的安全性表格。这是因为每个数据行的物理“标记,”它在存取时与用户标记进行比较。这一轻微的优势以可管理性的负面影响为代价。

大量数据的繁重分析经常涉及复杂的联合和查看高度集合的数据– 这在OLAP处理中很普遍。如果频繁运行,这些计算密集的流程可以从由DBMS管理的预先计算的结果中受益。所有三种DBMS产品都提供解决方案来支持汇总管理,以及使用查询重新编写将查询重新传送到预先计算的集合数据,从而提升复杂查询的性能。DB2的物化查询表21 (Materialized Query Table,MQT)和Oracle的物化视图22(Materialized View,MV)看起来非常相似。两种方法都支持具有或不具有一组子句的查询结果。数据同步由DBMS进行管理并可以选择为“立即”或“延期。”当推迟复制更新时,两种方法都支持基于基本表格中定义的分段区域的渐增式处理。在Oracle中,“嵌套的MV”提供优化的更新流程。DB2 不支持嵌套的MQT,但允许通过一条指令进行多个MQT的同步更新,从而实现与嵌套方法类似的性能优化。在这两种环境中,还可以对物化数据进行分段和索引,以及“用户定义,”它适用于集成应用程序。DB2的明显优势在于在远程、异构的对象上定义MQT的能力23。DB2 Cube Views的最近通告扩展了MQT概念到包括多维聚合,它被定位为用于OLAP加速的“了解OLAP的” RDBMS。SQL Server的索引视图 (IV) 解决了类似的问题,但实施的水平不能与DB2 和 Oracle相提并论。在SQL Server中,只有同步更新是可能的,不提供用户定义的索引视图。所有三种产品都对定义查询施加了一定级别的限制24。但是, SQL Server中的限制最严格,Oracle 中的限制多于DB2。

19 关于索引复杂的数据类型的详细信息请参阅“集成” 和“内容服务和扩展”章节
20 b-树、b-树群集、散列群集、反向关键字、位图、位图联合、分段数据索引、应用程序域索引
21 在V7.1中也称为自动汇总表(Automatic Summary Tables),现在已经增强
22 也称为Snapshots


实现数据库自动管理“如何”运行查询的最重要的组件是优化程序及其重新编写查询的能力。DB2、Oracle 和SQL Server都支持先进的查询重新编写功能,从而使性能更少依赖于精心编写的SQL。 这涉及多项工作,如预测下移(push-down)、子查询转移和联合重新排序。

Oracle 和SQL Server 支持大量的“提示”来改进查询优化,这些提示可以包括在应用程序SQL中,或在Oracle中由Stored Outlines维持。提示的使用有点令人气馁,因为逻辑或物理数据库设计方面的更改需要更改应用程序SQL代码。人们更希望使用RDBMS优化程序来处理导航而不是将导航控制嵌入到应用程序中。DB2 不支持这一级别的改进并完全依赖其先进的优化程序提供的自动优化。DB2不同于其竞争对手的一种特性是能够对部署在远程DBMS(DB2和非DB2)上的对象重新编写查询。DB2还可以进行语法优化,它考虑在查询期间使用RI。

数据人口统计是优化程序控制的性能中的关键。所有这三家厂商的RDBMS都支持数据人口统计。与Oracle和DB2相比,SQL Server支持自动统计是明显的性能优化。在Oracle中,DBA 可以启动数据库管理器来只收集带有“陈旧” 26信息的对象的统计数据。Oracle 和 DB2 支持统计数据“抽样”来支持有效的运行时间,尤其适用于大数据量环境。所有三种产品都支持其它统计方法,以收集关于表格和列域更详细的信息(以更长的统计数据收集运行时间为代价)。所有三种DBMS支持信息限制27。DB2 和Oracle 记录这类信息的使用以进行查询优化。

Oracle 过去提供基于规则的优化器(RBO),而在版本7中用基于成本的优化器(CBO)代替。 Oracle 建议使用CBO ,但支持RBO以实现向后兼容。DBA 必须密切注意向CBO提供统计数据,因为如果无统计数据可用将应用RBO。

优化器功能一般都没有明确记录,也许是因为该项技术是竞争的主要差异之一。从而实际上人们很难详细比较优化器的特性。但是,当评测DBMS的性能功能时基准是一个很有用的指示器。最为人所熟知的是TPC 基准(即TPC-C、TPC-H、TPC-R、TPC-W)。一些应用程序厂商还支持它们解决方案的特殊基准。例如,在OLTP领域,SAP 提供认证的SAP SD 基准(在其它厂商当中)。这种基准运行用于2级(应用程序和数据库服务器共享相同的硬件)和3级(应用程序和数据库服务器部署在独立的机器上)架构。SAP 还支持基于SAP BW(它们的商务智能解决方案)的基准。由于基准结果定期更新,我们将不再提供详尽的2003年7月的调查结果,建议读者需要时登录基准网站。但是当查看大量的性能基准时我们观察到一些有益的发展趋势。SQL Server 似乎是OLTP基准方面最成功的,它领导了许多中小型应用的基准。DB2 和 Oracle 公布了大量适用于OLTP和BI的成功的准。Oracle 显示了在中小型BI基准方面的优势,而DB2 公布了超高端的BI TPC-H 10,000 GB 结果。
23 使用DB2 Information Integrator V8.1 选件
24 专用聚合功能
25 当统计数据即将过时,SQL Server 2000 将使用抽样方法自动更新统计数据
26 意味着“过时”
27 关系限制定义用于DBMS作为额外的信息,但不强迫实施

所有三种DBMS 产品都采用了智能性能优化技术。DB2的架构似乎非常直接且简便使用,给设计决策留下很少的空间,这将损害性能。Oracle的特性似乎成熟和丰富,但使用起来比较复杂。从特性的角度来看,我们认为DB2更具优势。SQL Server 与 Oracle 非常接近。汇总的基准显示了DB2的全面领先优势。SQL Server 紧随其后,优势在于中小规模的OLTP。Oracle 排名最后,但与SQL Server比较,其优势在于大规模实施。

5.3 可用性
现代企业认为持续、快速地访问信息对于企业来说至关重要。电子商务是一种在线商务,它可以永不停止。人们不期望为电子商务应用套上一系列时间的枷锁。客户期望在网络上获得所有功能,而不考虑一天工作多少时间。

延长到一年365天,一天24小时的可用性称为“持续可用性”(CA)。CA 结合了持续运行和高可用性的特性,旨在为最终用户消除所有计划和突发的宕机。 必须在最终用户级对其进行评测,这些用户只关心完成的工作。这要求应用对于最终用户来说可运行和可用,包括硬件、软件、网络资源以及运行应用需要的数据。

真的很难从理论上进行比较,而且这一领域也没有众所周知的与性能类似的基准。只有一些报告生产体验的研究,如2003年的Solitaire Interglobal 有限公司的研究28。在这一研究中对超过200台 AIX& 和 300台 Windows NT& 产品系统进行了跟踪,旨在了解性能、可靠性、员工分配和上市时间问题。对于IBM xSeries 平台来说, Solitaire的调查结果显示DB2宕机次数不到Oracle的一半,不到SQL Server的45%。在不提供SQL Server的IBM pSeries平台上, DB2 害宕机次数也不到Oracle的一半,宕机时间不到Oracle宕机时间的10%。这一统计数据在计划和突发宕机之间无任何区别,因此该研究表明一种最重要的因素是需要数据库重组和重新部署。
在下面的讨论中,我们将区分计划和突发宕机。

5.3.1 计划宕机
本章讨论“连续运行”或计划宕机的消除。维护或管理工作,如数据备份、表格重组、计划评估和数据库参数更改都是数据库中计划宕机的起因。讨论将检验所有DBMS运行这些工作的能力
        在线
        最小资源分配
        最小锁定

在备份方面,DBMS 产品之间只有轻微的区别。所有DBMS产品都支持完全或渐增的在线备份。它们能够并行备份不同的表格空间。API 支持允许各个备份程序。仅在细分标准上存在一种差异:Oracle 支持数据块备份。

28 Solitaire Interglobal Ltd. 2003B2 Performance on IBM eServer pSeries and xSeries”

SQL Server 中未提供明显用于表格重组的实用程序– 表格群集索引的(重新)创建对行进行排序并取消表格的数据页面的分段。在重组期间,该表格是锁定的,因此不可用。DBCC Indexdefrag 提供最小锁定来实现索引重组。Oracle9i 和 DB2 为所有这些管理工作提供了重组实用程序,允许全面访问数据,因此最适用于这一领域。由于其部署的最小化了磁盘空间分配的表格重组实用程序和从不需要重组来维持数据群集的多维群集(MDC)表,DB2稍具优势。

表格空间(文件组)的重组不同于表格的重组,其中表格空间(文件组)拆分或联合以获得最佳性能。SQL Server 和DB2 UDB 8.1 未为这一领域提供实用程序,只有增加和丢弃容器(文件)的可能。在拆分和联合表格空间方面的重组表格空间只有Oracle9i能够胜任。

所有DBMS产品都支持在线统计数据生成– 对应用程序的影响最小。

计划评估,或对数据库结构的更改不是一项经常进行的工作。但当需要更改表格空间时,它是一项耗时的工作并将影响商业应用。Oracle9i最适合用于这一领域,因为
        计划更改期间允许全面访问的能力
        支持更改和丢弃列
        无需释放授权记录替换视图的能力

DB2 UDB 环境中的计划评估主要是“丢弃和重建表格。”但这也带来了关联的重新创建,如视图和授权记录。SQL Server 支持“更改和丢弃列”以及重新创建丢弃的基本表格后视图的重新激活(包括授权记录),位于Oracle9i 和DB2 UDB之间。

在以前的DBMS版本中,为了使系统参数更改生效,人们需要重启实例或断开所有用户。所有DBMS都更改了它们的实施,允许数据库工作时进行大量的更改。尤其是内存管理需要在线进行精确调整,在DB2和SQL Server环境中,由于它们提供自动内存管理,这项工作非常容易得以实施。

人们有时需要在群集环境中添加或删除节点。从可用性的角度看,群集架构存在一些差异。在shared-disk环境中,如Oracle9i,增加一个节点对磁盘产生最小的影响,因为群集中的所有节点都可以访问所有磁盘。在RAC29中节点必须注册而且必须创建Redo文件。这样该节点才可用。但如果遵循Oracle的建议以在群集环境中提供卓越的物理设计,需要对表格分段计划进行调整– 尤其是当使用范围分段时。DB2 采用shared-nothing 群集,分段的表格遍布群集中的节点。增加节点还意味着增加磁盘空间,而且需要在所有节点上重新分配分段的表格。DB2 中的重新分配由事务处理控制运行,需要重新创建统计数据和重新绑定关联的静态SQL信息包。SQL Server 2000 在联合数据库中运行自己的节点,其中通过联合视图来联合单个表格分段。增加节点意味着:将表格分段拆分成两个分段,将其中一个分段保存在增加的节点中。这可能通过事务处理控制的批量插入和删除语句来完成,它是一项手工流程,将对可用性产生负面影响。

对于所有DBMS来说,添加磁盘空间是一项轻松的工作– 由于增加的空间分配给数据库的表格空间,从而可用。正如前面所述,增加表格空间可以通过增加容器(DB2)、文件(SQL Server)或数据文件(Oracle)轻松实现。但在大多数情况下,增加表格空间是表格空间局部重新设计的结果或先决条件–Oracle 最适用的领域(正如前面所述)。只有在Oracle中,群集环境才与未群集环境存在差异。因为它采用shared-disk方法:共享的磁盘群集必须重新配置。

29 RAC:Oracle Real Application Cluster

数据仓库环境面临将大量数据装载到数据库中的挑战。这必须由DBMS通过涵盖可用性的装载实用程序予以解决。在新版本中,DB2 提高了装载期间DBMS的可用性:表格空间不再锁定,用户将能够读访问其余的表格。基本表格装载期间物化查询表(MQT)将全部可用,因为在数据装载完成后将逐步更新MQT。如果使用MDC,DB2 可以使用直接装载功能来重新使用表格中间的空间。此外,通过CLI来运行装载指令的可用性、通过选择子句使用装载的可能性以及快速卸载实用程序30都为 DB2 创造了在这一领域的优势。

Oracle 通过可以以两种模式运行的实用程序解决了装载问题:传统的装载运行与传统的插入语句类似,优化用于批量数据– 用户能够全面访问表格。直接路径装载在装载之间禁用所有限制和丢弃索引,装载后重新创建索引和激活限制。而在直接路径装载中,频繁运行的变量使得表格数据不可用。SQL Servers 批量复制实用程序还可以在事务处理控制下运行,访问表格的其余部分,但在实践中,锁定扩展特性将在批量插入期间锁定整个表格。

Oracle根据范围或显示创建表格分段的能力使用户能够从数据仓库删除数据,即删除不再需要的历史数据。

“重新开始语句”是Oracle中的特殊特性,当由于缺少资源导致语句中止时允许重新开始长期运行的SQL语句。这一功能不是长期可用– 应用程序需要设置话路为可重新开始。一旦语句被悬挂,用户或数据库管理员(DBA)不能自动获得通知– 消息被传送到BBA必须监视的日志文件。SQL Server 和DB2 没有提供相同的功能;只有备份、装载和重组等实用程序是可重启的。

在这一领域没有明显的赢家,DB2 和Oracle 排在前列,SQL Server 位居其后。Oracle 的优势在于备份、表格空间重组、增加和删除节点和大力支持计划评估,这是DBMS市场独有的。DB2 声称在备份、表格和索引重组、系统参数管理和数据装载方面领先。SQL Server 提供强有力的计划评估支持,但在节点管理和批量数据装载方面落后其它厂商。

5.3.2 突发宕机
正如前面所述,可用性的第二部分是在突发宕机发生时最大限度地缩短宕机时间。地震或任何其它自然灾害、破坏、硬件(磁盘或CPU)故障或任何其它众多基础架构中的内在故障都会导致突发宕机。还包括用户或应用程序错误。Disaster Recovery Journal声明系统/硬件故障的可能性为47%,人为故障的可能性为36%,而火灾和地震等灾难的可能性仅有3%。所有企业都需要部署通过试验和测试的恢复战略,以尽可能多的解决这些状况。不同的需求和经济因素决定如何恢复以及最大恢复完成时间的决策。对于绝对关键的业务来说,这意味着包括可以跨越大范围地理区域来支持地震等灾难事件恢复的解决方案。

从DBMS的角度来看,不同的事件可以分为两类:
        系统故障
        人为错误

系统故障
硬件或电源故障,以及操作系统或服务器崩溃会导致系统故障。系统故障期间最大限度地减少中断的最适当的特性是群集故障切换工具,如果一台设备崩溃,应用程序及DBMS将被传送到群集中的另外一台设备。这可以以主/主或主/备用模式运行。使用主/主模式,群集中的所有设备都是主设备和工作设备– 如果一台设备崩溃,剩余的设备接管其工作。使用主/备用模式,群集中的一台设备闲置,保留用于接管另一台设备当其崩溃时的全部工作。

30 Fast Unload (多平台工具)是收费插件工具。

备用服务器配置(系统故障后接管)可以用于保护避免出现重大灾难,它能够地理上从主服务器转向备用服务器。这种物理上独立的服务器保存了数据库副本,它为持续备用模式。备用服务器自动接收主数据库的持续更改。故障切换的时间通常要长于群集故障切换的时间,而且未实现全面自动化。

系统故障:群集故障切换

服务器群集通常依赖操作系统厂商提供的软件31。这种群集管理软件支持核心检测(定期检测关于服务器可操作性的查询)和崩溃后相互接管。将众多的资源(即磁盘、IP地址、DBMS 实例)分组到虚拟机器允许在群集中的所有节点之间浮动。

DB2 和SQL Server 完全依赖于这一群集管理软件。这些组件可以采用主/主和主/备用配置。例如,最小的主/备用配置,一台服务器工作和一台服务器闲置。或者先进的主/主配置,四台设备运行一个在所有设备上分段的DB2数据库32(如果其中一台设备崩溃,工作由其它设备一同承担)。

在主/备用配置方面,Oracle的运行模式非常类似。在主/主环境中, 由于Oracle的shared-disk架构,您需要Real Application Cluster(RAC)软件。从架构上讲,这种软件基于群集管理软件来部署以利用核心检测–故障切换自身由RAC来驱动。但是,为了取消Windows 和Linux 关注的可群集服务器最大数的限制,Oracle 在这些平台上部署了自己的核心检测解决方案。

为了评测DBMS有效管理系统故障宕机的能力,人们需要区分OLTP和BI应用程序环境。Oracle的透明应用故障切换(TAF)支持到其它节点的客户机端重新连接和只读环境中当前进行的查询的重新提交 。DB2 和SQL Server 不提供相同的功能。服务器端故障切换流程被认为是DB2 和Oracle同样高效的流程。SQL Server 稍有不足:尽管基于与DB2类似的架构,相反,它不允许DBMS在实际故障切换之前启动故障切换设备。在DB2中,简化了故障切换流程为接管磁盘和IP地址,假设由于BI环境中没有更新操作,恢复时间可以被忽略。流程期间虽然分段表格的访问是受限制的,但主节点拥有的所有数据都是可访问的。这与SQL Server类似,虽然分布式分段视图在整个接管期间不全部提供。在Oracle环境中,在相对短的重新接管流程期间,整个数据库都不可用。

OLTP环境中故障切换效率最具决定性的因素是实例恢复和流程期间实例数据的可访问性。而在DB2 和 SQL Server环境中,恢复受限于故障切换节点和其它节点保持可访问的数据,Oracle的全部回滚(rollback)操作允许期间访问整个数据库,当前正在恢复的数据块除外。

与OLTP 和BI无关,在主/主环境中的故障切换之后,DBMS 需要确保在剩余的节点上平衡工作量。Oracle 本身具备这一项功能,因为它不依赖特定节点必须管理的数据–所有节点都可以访问所有数据。在主/主 shared-nothing 群集环境中,所有节点都是数据的唯一拥有者,不能直接供其它节点使用,因此在剩余设备上重启故障的实例将导致该台设备上工作量加倍,而实际上其它设备不受任何影响。通过在DB2中频繁使用逻辑节点,在SQL Server中使用“虚拟服务器,”群集架构可以避免这一问题33。

31 Microsoft Cluster Server (MSCS) on Windows 2000;HACMP (High Availability Cluster Multi-Processing) on AIX;Sun Enterprise Cluster 或 Veritas Cluster Manager on Solaris; SteelEye on Linux 和ServiceGuard on HP-UX
32 在SQL Server环境中,在这种情况下您将部署联合数据库
33 例如:每台设备有三个逻辑节点/虚拟服务器的4节点群集;故障设备的三个逻辑节点/虚拟服务器可以由剩余的三台设备接管

由于群集管理器是软件的一部分,它还是单故障点。采用RAC配置的Oracle 对群集管理器故障非常敏感。如果群集管理器发生故障,整个群集以及其数据库都不可用,而DB2 和SQL Server “仅”丢失它们故障切换的能力。
在BI环境中,在主/备用配置方面,故障切换之前DB2在备用设备上启动数据库管理器的能力被认为是一种优于Oracle 和SQL Server的优势。而在高容量OLTP方面,与DB2相比,Oracle允许在回滚流程期间访问数据库的能力似乎更具优势。但是,没有适当和可比较的基准,这似乎非常难以验证。IBM最近公布了案例分析34显示在OLTP环境中,DB2可以在10秒内完成故障切换。

系统故障:备用数据库

所有DBMS产品都提供备用数据库解决方案35。通过使用数据库备份或使用拆分镜像处理可以创建备用数据库的第一个映像。确保这一映像同步可以由两种不同的方法来管理:日志传送(Log shipping)和事务处理传送(Transaction shipping)。

所有DBMS都使用类似的方法来处理日志传送。日志文件将传送给备用数据库,允许前滚(roll-forward)操作来反映最新的更改。SQL Server provides 提供综合的GUI来设置日志传送。

我们定义事务处理传送为向备用数据库传播事务处理的能力,无需备用数据库一直前滚。从而通常闲置的备用数据库服务器可以用于报告。可以增加物化视图/ 查询表和优化索引来支持这些查询。DB2 和 SQL Server 通过它们的复制工具来支持事务处理传送。Oracle 具备逻辑备用库特性。尽管与数据库复制类似,但在可管理性方面拥有优势。

系统故障:恢复
我们建议为系统部署备份和恢复功能来实现恢复,无需“连续可用性。”当需要处理目标数据故障时可以选择这种方法。

目前使用两种不同的恢复方法。版本恢复是数据库以前版本的恢复,使用备份期间创建的映像。前滚恢复是库或表格空间备份映像恢复后,记录在数据库日志文件中的事务的重新应用。所有DBMS 都并行和在线提供这些方法,以及数据库或表格空间细分标准。此外,Oracle支持数据块细分标准,恢复时能够选择性地只处理坏的数据块。DB2 提供优化的前滚实用程序。由于DB2 知道哪个日志文件存储了与表格空间相关的记录,在前滚期间可以跳过不需要的文件。

人为错误
突发宕机的常见原因是资源故障或软件错误,但当前调查显示用户错误的比例正在增加。只有DB2 和Oracle 提供解决这一问题的功能,经常也称为“撤销操作管理(undo management)。”在DB2中,重新创建错误丢弃的表格是可以的。在可选的“DB2 Recovery Expert for Multiplatforms”中,提供基于归档和正在使用的日志的挖掘的高级撤销操作管理。Oracle提供“Flashback Query” 功能来查询以前的数据库,如一小时前。用户可以使用这些查询的结果来手工更新数据库,从而将不希望的更改返回以前的状态。

34 “使用IBM DB2 Universal Database V8.1来为高容量事务处理电信应用实现10秒故障切换– 客户案例分析”, IBM 软件部多伦多实验室
35 在DB2环境中,备用数据库只需要一个CPU许可,包括主/备用群集配置


总之,所有DBMS都能够满足低级别以及高级别的可用性需求。对于群集的主/主BI环境来说,在群集环境中,Oracle因其透明应用程序故障切换(TAF)而稍具优势,允许实例故障后自动客户机重新连接。DB2 和 Oracle 的服务器端故障切换流程同样有效。而在DB2中,需要进行资源接管,在Oracle中您需要规划资源重新接管。与DB2相比,SQL Server 稍显不足,因为需要明显的DBMS启动,这一不足同样存在于OLTP环境。在OLTP环境中,DB2 和 Oracle 显示了不同的故障切换效率优势,这导致在这一领域两者旗鼓相当。在DB2中,在整个故障切换流程期间,故障节点以外的数据都可以访问,Oracle在回滚期间允许用户访问。

对于主/备用群集切换来说,所有三种DBMS产品都使用非常类似的工具。由于故障之前DBMS可以启动,DB2在BI环境中稍具优势。在OLTP环境中,我们发现DB2 和 Oracle旗鼓相当,而SQL Server 稍稍落后。

与DB2G 和SQL Server相比,Oracle 在管理备用数据库方面稍具优势。在恢复领域,DB2 和Oracle 都有使某些环境从中受益的单独特性。基本上我们发现这两种产品旗鼓相当。SQL Server落后这两种产品,在这一领域不提供明显的特性。虽然我们在上面阐述了撤销管理,但在本章的最后评比部分我们并没有提及,我们将在可管理性评比中予以介绍(见“可管理性”一章)。

虽然总是不能直接进行比较,我们发现DB2 和Oracle 是突发宕机管理领域同样强大的领导者,提供极其高效的故障切换处理来支持CA。作为一种令人印象深刻的专业产品,SQL Server紧随其后。

5.4 可管理性
企业数据库环境的可管理性由多种因素来决定,这些因素影响保持连续运行必需的人为干预的级别,包括:
        使用性
        复杂性
        自动化/自主
        位置透明(面向分布式环境)

最佳的可管理性将是部署完全自我管理的DBMS。这是所有重要DBMS供应商声称他们正在努力实现的最终目标。有时也称为自主计算。随着应用复杂性和数据量的增加,DBMS 也变得越来越复杂以支持需要的可扩展性、性能和功能级别。随着产品日益复杂化,自主计算越来越难以实现。这些因素根据应用和数据需求来确定可管理数据库的更改。那么DBMS是否更可管理,以减少系统容量为代价来最大限度地减少的复杂性? 或者更适合以文雅的方式处理复杂性来满足高端需求? 这一问题的答案将取决于各种需求。

数据库管理是涉及众多领域的复杂性问题。这就是为什么同样需要众多的工具来专业处理每个问题领域的原因。但是,为了维持使用性,这些应可以通过集成界面访问,包括本地和远程数据库的中心登录点。Oracle的管理服务器(也称为OMS) 和DB2的管理服务器(也称为DAS) 提供可扩展的架构来解决这一问题。SQL Server的解决方案在架构方面稍有不同。尽管DAS 和 OMS 可以被视为完全专用于管理任何数量的数据库实例(远程和本地)的单独DB服务器,但SQL Server从被声明为主服务器的标准数据库服务器来管理远程实例。对于SQL Server来说,您必须明确注册所有远程服务器。远程服务器对主服务器进行轮询来运行计划的工作,但对它们分别进行管理。DAS 和 OMS 能够发现网络中的 DB 服务器。它们部署了可扩展的数据仓库,从而为它们提供了“标准”数据库服务器未提供的其它管理功能。DAS 和 OMS 负责自动化远程管理以及管理涉及的通信和类似工作。在所有这三种DBMS产品中,DBA 提供所有可用工具的集成GUI以及元数据和多个向导的中心接入点。SQL 的服务器 GUI 最直观,在熟悉的Windows 界面中使用。Oracle的 GUI 与 Windows 界面最不相似。

对于 DB2 和 SQL Server 来说安装非常简单,而且通过设置向导提供支持。在Linux环境中部署和运行Oracle将面临多个挑战(手工用户创建、设置内核参数和某些脚本程序),从而使得初学者难以完成安装。在配置方面,Oracle 提供多种模式的DB供您选择,取决于您的需求。使用DB2 的 Configuration Advisor,将向DBA询问一系列问题,从而允许DBMS检查系统,决定最佳的配置参数。SQL Server 和 DB2 允许生成响应文件来支持远程设备上相同的自动化安装。Oracle 提供响应文件作为模板,这些模板可以进行编辑,然后用于自动化远程安装。

虽然所有这三种 DBMS 产品都提供多种精确细分的选件来管理数据库对象的磁盘空间,但SQL Server 最不灵活。尽管SQL Server 允许您轻松地定义主和备用文件的自动增长,但当增加磁盘时问题出现了。 您需要群集的索引和“重新索引”实用程序来释放以前使用的表格空间。您可以触发数据库维护计划向导中的空间优化实用程序,当空间问题出现时自动运行这一流程,但只有有限的功能来积极监视空间问题。DB2 提供存储管理工具, DBA 可以收集重要的统计数据和为自动化告警定义阈值。空间评估工具旨在计算需要的DB空间。这两种工具都是DB2提供的免费功能。相反,Oracle的Tablespace Map是Tuning Pack Option的一部分,需另行收费。

SQL Server 提供简化备份和恢复管理的友好的用户界面,可以根据其备份仓库来建议恢复计划。基于文件组来进行局部的DB恢复是可能的,但是,整个DB仓库被恢复,它将导致完整性问题。Oracle的恢复管理器同样用户友好,它是一种集成的特性。Oracle的LogMiner支持对归档的日志进行高级查询。Oracle的Flashback Query 特性支持撤销管理,尽管应用程序需要密集的手工交互。DB2 通过Recovery Expert 提供额外的备份仓库,Recovery Expert 是面向多平台的可选的综合工具。Recovery Expert 支持自动恢复管理,DBA 定义用户希望做“什么”并且该工具指出“怎么做”的最佳方式。它还支持基于归档和正在使用的日志的日志挖掘的高级撤销管理。

在所有三种DBMS中资源管理相对动态,而且可以在线更改多种配置参数。SQL Server 根据操作系统和其它应用目前正在使用的内存数来动态确定开始时分配多少内存。由于计算机和SQL Server 上的负载发生变化,从而分配内存。为了进一步监视SQL Server 环境,DBA 可以基于对象信息和SQL Server 提供的计数器来在Windows System Monitor36中设置告警。

在DB2中,您可以使用Memory Visualizer来分析您的系统和进行工具支持的在线缓冲池管理。DB2 支持某些内存参数设置为“自动,”这意味着它们可以根据需要增加和减少,这由DBMS来确定。Design Advisor37 根据特殊的查询工作负载、从数据库提供或捕获的用户来分析数据库设计,建议适当的索引来增加或删除以实现最佳性能。Optimization Advisor38 有助于MQT创建。作为一种单独的工具,Query Patroller提供数据库的历史记录分析和对象使用状况来支持性能管理。借助于DB2 Performance Expert (多平台工具选件),DBA 可以分析任何类型的跟踪数据并作为历史记录收集到单独的性能数据仓库中。DB2的高级优化器自身是性能管理方面的一种优势,其查询重新编写功能有助于减轻DBA 和开发人员进行查询分析和调整的压力。

36 在Windows NT中也称为Performance Monitor
37 也称为Create Index Wizard,V8中重命名
38 DB2 Cube Views中包括

Oracle 包括面向MV和维数的汇总顾问向导。为了寻找支持Oracle的复杂索引管理的工具,我们求助于Oracle 的Tuning Pack (选件)。该程序包包括大量有用的性能管理特性,包括性能数据仓库,SQL Analyze 旨在管理Oracle的复杂存储的概述。Oracle的数据库资源管理器是实现向组和用户有针对性地分配资源的特性。在内存管理方面,在Oracle环境中,实例(SGA_MAX_SIZE)消耗的最大内存是需要关闭实例以更改值的参数,因此如果没有关闭的话,内存需求不能增长超过这一阈值。这意味着Oracle 可以更改其内存需求,但只能在自己启动时分配的内存空间范围内(它不能把内存返回给操作系统,也不能从操作系统获得更多的内存)。

SQL Server 提供索引调整向导。其查询管理器(query governor)仅允许DBA设置DB服务器的成本限制,但不能与DB2和Oracle中的管理特性相提并论。所有这三种DBMS都允许收集统计数据(全部或抽样)来支持查询优化。在Oracle中,DBA 可以要求只收集具有“过时”统计数据的对象的统计数据。SQL Server是唯一支持“自动统计”的DBMS。

所有 DBMS 都允许GUI查看数据库对象和进行更改。Oracle 在计划管理方面最具优势,这都得归功于强大的“ALTER TABLE”功能,从而允许进行高效和用户友好的更改。SQL Server 使用图形方式显示关系模型,包括指导性限制,支持类似的告警操作。与其它两种产品相比,DB2在这一领域稍显不足。

交叉服务器对象和数据管理是一项日常DBA工作。在这一领域每个DBMS都提供大量详尽的特性(即交叉系统移植、DDL 和配置脚本程序…)。DB2 提供最强大、最灵活的高效数据装载和卸载工具,在v8.1中对这些工具进行了显著增强。DB2还提供一种高级的工具选件(DB2 High Performance Unload)来补充这些工具。SQL Server 的实用程序使用率较低,尤其在移植大数据量时面临挑战。Oracle 的导入实用程序是“基于分区,”当与基于值分布的分区协作时尤其有效。Oracle的输出实用程序生成仅供导入实用程序使用的专用格式。Oracle 的 SQL*Loader 可以访问“外部”表格,一种可以用与DB2 Stored Procedures 和新CLI Load类似的方式实施的特性。

在安全性管理方面,DB2 和 SQL Server 使用操作系统功能,仅要求在DB服务器上部署明显的组管理。在Oracle中,用户必须在DB中额外进行管理。管理行级安全性意味着DB2 和 SQL 环境中的视图管理。根据信息文件的数量和子句的复杂性,这将带来实实在在的开销并可能要求单独的工具开发,因为DB不提供任何现有的工具支持。在Oracle中,您可以充分利用标记安全性。与上面提到的视图管理相比,这种特性更具优势39。 但是,由于安全性信息与数据一起存储,信息文件的更改会导致昂贵的数据更新,这对于大量数据来说尤其关键。

上面讨论的所有领域将依赖自动化工具来实现最佳的可管理性和实现DBMS广泛自主。SQL Server 、Oracle 和DB2 提供中心工作管理和调度工具。每个环境允许定义告警来支持自动化故障管理。在SQL Server 和 Oracle环境中,DBA 定义系统应予以响应的事件和评测的方法。这涉及复杂脚本程序和流程的实施和调度。在SQL Server 和 Oracle 环境中,DBA 可以使用结构来定义和对发生的事件采取措施,以在实际故障发生之前积极响应,尽管这些需要手工进行配置。DB2的 Health Center (v8.1版本中的新功能)提供大量预先定义的运行状态指标和建议,以便它们运行可以由DBA进行配置的操作,从而实现高速、有效地管理工作自动化。

在讨论了可管理性所有不同的领域之后,我们在下表40对结果进行了汇总:

标准        领导产品        竞争产品        尾随产品
使用性/ 用户界面        SQL Server 2000        DB2 UDB V8.1        Oracle9i R2
安装/ 配置        DB2 UDB V8.1 /SQL Server 2000                Oracle9i R2
多服务器管理        DB2 UDB V8.1 /Oracle9i R2                SQL Server 2000
空间管理        DB2 UDB V8.1 /Oracle9i R2                SQL Server 2000
备份/恢复/撤销管理        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
性能/资源管理        DB2 UDB V8.1        SQL Server 2000        Oracle9i R2
数据装载/归档        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
计划管理        Oracle9i R2        SQL Server 2000        DB2 UDB V8.1
交叉平台对象管理        DB2 UDB V8.1        Oracle9i R2        SQL Server 2000
管理不同的环境(即开发、测试、生产 …)        Oracle9i R2        DB2 UDB V8.1        SQL Server 2000
应用程序并行/ 同步        Oracle9i R2        DB2 UDB V8.1        SQL Server 2000
安全性管理        Oracle9i R2        DB2 UDB V8.1 /SQL Server 2000       
自动/ 自主        SQL Server 2000        DB2 UDB V8.1        Oracle9i R2
最小整体复杂性        SQL Server 2000        DB2 UDB V8.1        Oracle9i R2
图2 可管理性汇总
39 提供工具
40 特性和选件之间无任何区别

在本章的开始我们问了这样一个问题:是否 DBMS 更可管理,以减少系统容量来提供最小的复杂性? 或者DBMS 以文雅的方式来处理复杂性,使高端需求更可管理?

总之,SQL Server 似乎是复杂性最小的产品,更方便缺乏经验的DBA进行管理。虽然DB2 和 Oracle同样支持大量先进的特性,因此比SQL Server更复杂,DB2 使用少于Oracle的参数和配置详细信息来管理复杂性。这在性能和资源管理方面尤其明显。

SQL Server 通常被认为是最好管理的DBMS。这对于中小规模环境来说确实如此。而在高中规模部署中,SQL Server的可管理性稍显不足。这是由于数据库管理的某些领域的灵活性受到限制。对于中小型应用来说,这些限制将不会产生重大影响。在此,可管理性得益于更小的整体复杂性。而对于较大规模的部署来说,SQL Server 缺少灵活性令人沮丧。总之,对于中小规模部署来说,在管理性方面SQL Server领先,之后是DB2 和Oracle。而对于大中规模部署来说,在管理性方面DB2 处于领先。

5.5 应用程序开发
应用程序开发支持自身并不是单独的数据库问题。应用程序开发环境提供许多希望的功能。使用性根据开发工具在数据库中的集成程度来确定,反之并不如此。这也许是历史上 Oracle (使用PL/SQL) 和Microsoft (使用Transact SQL 和 与ADO类似的MS 专用AD标准)为它们的DBMS提供广泛的编程环境,导致或多或少的以AD为中心的开发方法的一种原因。同样,IBM 为自己提供 AD 工具。此外, IBM 还密切关注在异构平台上同样支持各种各样的工具和环境。

结果是 DB2 提供最广泛的API、编译器和存储程序语言支持。这包括最新的IDE环境和AD模式,即Java 结构和 Web 业务,以及Microsoft的ADO.NET、OLE DB 和MS 对象模式。DB2 还支持标准语言,即Perl、REXX、Fortran、Cobol。DB2 是唯一支持真正静态SQL的DBMS。Oracle 提供类似的OLE DB、MS ADO、C/C++ 和Java支持,但不提供DB2中某些著名的选件。SQL Server 专门关注Microsoft AD模式。

DB2 包括Oracle 和 Microsoft 仅在它们单独的AD工具中提供的开发工具。DB2 8.1 版本中的新功能是开发中心-一种代替Stored Procedure Builder并支持整个DB2 家族的工具,范围从工作站到z/OS。借助于开发中心,您可以创建、构建和部署存储程序UDF,与数据库对象协作。它还提供Microsoft Visual环境的开发插件。由于SQL提供越来越多的复杂特性,编写复杂的SQL成为一项日益重要的工作。同样与DB2一同销售的SQL Assist是提供帮助语法检查和测试复杂的查询的工具。Oracle 和 SQL Server 都不提供此类查询工具。除了支持应用程序开发人员之外,讨论的DB2特性还允许DBA 基于DBMS环境来实施逻辑,无需参阅数据库管理不需要的复杂的IDE。在Oracle 和SQL Server 环境中,DBA 需要额外的工具来完成这一项工作。

SQL Server 使用英文查询API提供DB2 和 Oracle环境无法媲美的一种特性。它使应用程序能够传递用户用英文书写的关于数据库中信息的问题到英文查询引擎。

为了支持测试和优化,所有这三种数据库都提供表格编辑、特殊查询和查询解释工具。DB2 和 Oracle 通过允许更新数据库管理器统计数据来提供大数据量的仿真,但SQL Server 缺乏这一特性。在不同应用程序环境中的数据库对象的管理和评估方面,由于具备在线计划评估、可扩展更改表格和替换视图功能,Oracle处于领先。Oracle Workspace Manager 还提供允许应用程序创建工作场所以及将不同版本的表格行值分组到不同的工作场所中的基础架构。在使用先进的实用程序来管理测试数据方面,DB2 和 Oracle 都具备优势。SQL Server DBA 最有可能需要使用应用程序逻辑(即DTS、SQL)来实施需要的测试数据管理。

当实施数据库扩展时,DB2 统一采用相同的架构概念,无一例外,从而使它们易于理解和使用41。但是,虽然DB2家族可以在多个异构平台上使用,但提供各种不同的功能,这在一定程度上限制了便携性。便携性是Oracle的优势,Oracle是一种支持所有可用异构平台的产品,但架构概念并没有像在DB2中一样统一实现。从AD的角度来看,这增加了复杂性。虽然SQL Server 实现了非常相似的AD方法,但仍仅限于在Windows 平台上部署。

从应用程序开发人员的角度看,数据库不适合是因为内置的AD支持。此时的问题是DBMS如何紧密集成到单独的开发环境中。应用程序开发人员通常喜欢使用IDE,它掩盖了数据库的复杂性,从而将注意力集中在AD工作上。从开发人员的角度来看,这是可以理解的,但从数据管理的角度来看,它将导致次优解决方案的实施。如果在初期开发阶段未能充分解决的关于应用程序数据模型的问题在稍后的阶段中出现(即性能或可管理性智能),它造成的影响更加严重。虽然详尽的IDE评估对自身进行了研究,但它超出了本文的范畴,如果您旨在开发单独的应用程序,在决定技术DBMS时了解DBMS遵循的AD战略和概念将是一个至关重要

论坛徽章:
0
2 [报告]
发表于 2003-12-05 16:22 |只看该作者

ibm官方数据库比较:db2,oracle,sql server

DB2还是很不错的啊!

论坛徽章:
0
3 [报告]
发表于 2003-12-05 16:27 |只看该作者

ibm官方数据库比较:db2,oracle,sql server

我以前是学习ORACLE的。感觉DB2在安全性方面要弱些。
比如对于权限的控制没有ORACLE强!

论坛徽章:
0
4 [报告]
发表于 2003-12-08 15:47 |只看该作者

ibm官方数据库比较:db2,oracle,sql server

db2的身份认证和操作权限认证是分开的,身份认证通过操作系统来进行,比较接近门户的概念,而oracle完全是自己的用户和组,控制的更严密些

论坛徽章:
0
5 [报告]
发表于 2003-12-08 16:20 |只看该作者

ibm官方数据库比较:db2,oracle,sql server

谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP