从各个方面产品对比SYBASE.docx
- 文档编号:24397820
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:16
- 大小:30.79KB
从各个方面产品对比SYBASE.docx
《从各个方面产品对比SYBASE.docx》由会员分享,可在线阅读,更多相关《从各个方面产品对比SYBASE.docx(16页珍藏版)》请在冰豆网上搜索。
从各个方面产品对比SYBASE
从各个方面产品对比SYBASE&ORACLE
数据库市场份额比较
Sybase公司成立于1986年,立足于在开放系统平台上研制具有Client/Server体系结构的数据库系统软件产品。
当时的Sybase公司由于有效地汲取了其它RDBMS设计过程中的先进技术和概念,以满足联机事务处理(OLTP)应用的高性能要求为目标,同时加强联网对异构数据源的开放互联,使Sybase取得了很大成功,特别是Sybase有效的拓展市场行动,使Sybase曾一度成为世界数据库市场增长最快的产品。
然而,由于产品本身的技术问题,不能提供对大型多处理器系统的支持,使得Sybase的市场份额急剧下降,并出现连续的亏损。
1997年亏损额为5540万美元,1998年仅第一季度就亏损了8120万美元。
1999年初,Sybase裁员又600人,将近其全体员工的10%。
2001年第一季度没有亏损,但令人担心的是比2000年同期许可证(license)收入下降了10.7%。
早在1997年,著名的市场分析公司GartnerGroup就已将Sybase从”Big5”DBMS市场领先者的名单中删除。
根据Gartner/Dataquest近期发布的2001年度数据库市场份额统计报告,在Gartner/Dataquest报告中Oracle依然在主流操作系统Unix和Linux,WindowsNT/2000/XP上的关系数据库市场上占据绝对的领先地位,在UNIX上占63%,Windows+Unix上占49.9%。
在关系型数据库市场(包括AS/400,Mainframe),Oracle以39.8%仍然处于领先地位。
根据最新的FactPoint的调查,Oracle数据库依然是Fortune100公司的首选数据库,其中51%的Fortune100公司选用OracleDatabase作为构建企业的传统应用和电子商务平台。
FactPointGroup报告的调查结果:
1、Oracle仍然是Fortune100公司的首选数据库平台,Oracle的数据库市场份额远远超过其它竞争对手,其市场份额是第二名的2.5倍。
2、51%的Fortune100公司选用Oracle数据库来构建企业的传统应用和电子商务应用平台。
3、Fortune100所选用的主流应用软件绝大多数选用Oracle数据库平台,其中:
100%的Oracle应用产品;76%的SAP;72%的PeopleSoft;81%的Siebel;73%的i2都选用Oracle数据库平台。
4、Oracle数据库产品渗透到Furtune100公司的各个业务领域,其中75%的财务应用,72%的人力资源应用,68%的客户关系管理应用和72%的供应链管理应用都采用Oracle数据库平台。
5、Oracle数据库被Furtune100的客户评选为技术最好和与主流应用软件集成最好的数据库平台。
FactPointGroup调查涉及了与Fortune100公司的IT经理们的400次会谈,其调查结果根据Fortune100公司的数据库产品的使用状况,真实体现了当今企业中数据库部署与使用的状况,根据FactPointGroup的调查Oracle数据库技压群雄,仍然保持了企业数据库市场份额的领头羊地位。
ORACLE与SYBASE技术先进性的比较
Oracle数据库与Sybase数据库相比,无论从体系架构、并行支持、完整性控制等各方面均有很大的优势。
1、体系结构的比较
Oracle采用多线索多进程体系结构,直接在内核中支持分布式数据库操作、多线索处理、并行处理以及联机事务处理等。
Oracle企业级服务器从结构上说,同时支持集中式多用户环境、Client/Server、分布式处理和Internet计算结构;从技术上说,为应用程序及系统开发人员实现了透明的网络环境、混合网络结构以及分布式数据管理等
Sybase采用单进程多线索体系结构,其核心是SQLServer(现在为与MicrosoftSQLServer区别,改名为AdaptiveServerEnterprise),在Client/Server体系结构的基础上,架构了复制服务器(ReplicationServer)和多功能通用网关(OmniSQLGateway,现在叫EnterpriseCONNECT)等部件,从而形成了软件产品系列。
2、多线索多进程与单进程多线索的比较
Oracle和Sybase都采用多线索。
采用多线索的模式,能用较少的线索管理大量的用户进程;并且,线索进程是动态可调整的,当用户数增加时,线索进程也会阶段性地自动增加;当用户数减少时,线索进程也会自动减少。
多线索结构,大大降低了Oracle和Sybase对系统资源的占用,提高了系统资源的利用率。
对于Oracle的体系结构,在集中式多用户环境下,每个用户单独占用一个服务器进程;在Client/Server和Internet方式下可以采用多个用户共享进程,以多线索方式执行用户的请求。
另外,针对特别级别的用户,可以单独占用一个服务器进程,实现最优级别的用户请求。
Oracle的服务器进程是用来同时处理数据库请求的,它们从请求队列中拿出申请,进行语法分析、权限检查以及一系列的内部操作,并协调Oracle其他后台进程,以共同完成申请的处理,并把操作结果返回到回答队列。
Oracle多服务器进程结构,能实现数据库事务的并行处理,提高并发事务处理的响应速度。
并且多服务器结构具有非常灵活的扩充性,当硬件平台处理能力提高时,服务器进程的个数也能随之增加,数据库性能也随之提高。
多服务器结构,避免了单服务器结构中很容易造成的服务器进程瓶颈现象,也避免了因此而引起的单服务器进程死锁的现象。
Sybase采用单进程多线索方式,用户请求都由一个进程来进行总的调度和管理。
在单服务器并采用单一的Client/Server模式下其对数据库的管理比较简单,内存资源占用较少,在并发用户数较少的情况下,其对系统资源的利用率比采用多进程方式要高;但同时,当并发用户数达到一定的数量时,会引起系统处理性能大大下降,和服务器进程瓶颈及死锁等现象;同时系统的可扩展余地非常狭窄。
3、系统集成度
Oracle服务器上的Oracle多线索多进程结构以及并行查询,分布式数据库、高级复制等功能都是直接在Oracle核心中实现的,无需添加额外的服务器,不要求额外的系统配置,也不会带来额外的的系统管理负担,更不会产生由API带来编程的变化。
Sybase由实现不同功能的不同服务器组成(ASE,ReplicationServer,EnterpriseConnect,IQ等),众多的服务器要求能协调一致地工作,同时又要满足高可靠性和高可用性的要求。
这不仅对硬件设备提出了很高的要求,对系统管理来讲也提出了极高的要求。
Sybase对用户是不透明的,许多操作需要编程人员来管理和操纵,而且后来引入的应用程序接口(API)CT-Lib与以前版本(DB-Lib)不兼容,大大加重了编程人员的负担,延长了开发周期。
4、联机事务处理
联机事务处理是比较特殊的一类应用,一般体现为同时工作的用户数较多,对数据的操作申请比较简单,但要求比较快的响应时间。
针对这类应用,计算机系统必须提供一个能支持大量同时工作的用户,并提供比较大的系统吞吐量来消化用户的大量申请。
具体来说,就是要有较好的用户管理手段、有效的内存缓冲区管理、优化的I/0进程控制、有效的系统封锁处理、快速的网络管理功能等等。
因此,为了在联机事务处理应用中达到较好的性能,应以适用于联机事务处理的硬件平台、操作系统、网络环境为基础,配合数据库处理,才能实现理想的联机事务处理。
Oracle的多线索技术在相同硬件环境下,所支持的用户数是其他数据库系统的5至10倍。
Oracle的多进程技术从根本上加快每一个用户申请的处理速度,特别是在大量申请需要处理的情况下,它能保持内存中请求队列在大部分时间处于队列空的状态。
更为灵活的是,Oracle多进程的数量是动态可调整的,使用相应的系统参数,可以控制服务器进程个数、当应用环境、工作量、硬件环境等发生变化时,可以构造不同的Oracle服务器进程,使用户的申请在任何时候都能保持较快的处理效率。
数据库共享缓存管理,是影响联机事务处理性能的一个关键因素,能充分且有效地利用高速缓存,就能大大减少许多重复操作,大大减少不必要的I/O,从而提高语句的执行速度。
Oracle有一套十分有效的内存高速缓存管理的技术,编译后的SQL语句共享缓冲区、预读入技术、日志记录缓存等。
在多用户并发工作的情况下,写/写冲突及读/写冲突是主要的影响实时操作效果的因素,是联机事务需要解决的主要问题。
Oracle采用行级封锁来解决写/写冲突,当用户要对一张表进行修改或更新操作时,会自动锁定要修改的记录“行”,而不是整张表。
当其他用户同时也要修改同一张表时,也锁定各自需要修改的记录“行”,只有在两个或多个用户需要修改同一记录行时,才会出现排队等待锁资源释放的现象。
这种行级封锁大大降低了冲突的机率,与页级锁或表级锁相比,大大提高了系统的吞吐量。
Oracle采用读一致快照技术来解决读/写冲突,而不是采用传统的读锁方式。
当一用户对某一记录进行修改时,系统会自动生成一个该记录的拷贝,称为读一致性快照。
而另一用户同时要读取这一记录行时,读操作将读取读一致快照的内容,而不用加读锁。
因此读操作将不被写操作所阻塞;同样,写操作也同样不会被读操作所阻塞。
可见Oracle的行级封锁及读一致性快照技术,使得在大量用户并发工作的联机事务处理环境下,用户发生冲突而排队等候的现象减少到了最低,大大提高了系统的吞吐量,提高实时响应的速度。
另外,Oracle还有灵活的查询优化机制,确保查询操作的快速完成,如基于成本的智能优化、哈希方法、分布式查询优化等,都能以不同的使用方法,为不同层次的用户自动提供最佳的优化方案,而无需用户编程指明。
为了能提高事务的吞吐量和低的响应时间,Sybase主要采用了支持存储过程(StoredProcedure)、Log成组提交以及基于成本的优化等技术。
其设计思想分别和Oracle中数据库共享缓存管理以及查询优化机制相似,从功能处理上没有Oracle的全面和有效。
长期以来,Sybase采用页级封锁机制来解决写/写冲突,使用户的并发事务受到很大限制,集中体现在用户的并发事务达到一定数量时,系统实现上容易陷入瘫痪的状态。
在ASE的新版本中才引入行级锁,然而,Sybase的行级锁并不彻底,它采用可升级的行级锁,可升级的行级锁随着系统活动级别的增加,为管理内存的使用,会升级原有锁的级别——当系统并发访问较多时,会引起行级锁升级为页级锁。
所以系统对大量并发的控制并没有实质的改善。
例如,用户A在修改某个客户信息,将可能影响用户B修改其它客户信息。
不必要的资源竞争,较低的系统并发性,对关键业务的OLTP系统是无法忍受的。
由于缺少读一致性的多版本模式,Sybase不能提供一致性和并发性兼得的解决方案。
为了使读操作不阻塞写操作,Sybase使用脏读(DirtyRead)技术。
虽然提高了性能和并发性,但带来了读到的数据可能与数据库中的数据不一致的结果。
另一方面,如果要保证读一致性,Sybase采用加读锁技术,而用户A的读锁不能与用户B的写锁同时加在同一个数据块上,因此,用户A必须等待,直到用户B的事务处理结束,释放写锁后,才能继续进行读操作。
或者用户B必须等待用户A读操作完成后才能进行写操作。
读和写操作互相阻塞,大大增加了死锁的可能。
5、硬件平台及操作系统的适用性
Oracle能支持几乎所有常见的硬件平台及操作系统,这种支持不是简单的内核移植,而是针对不同的硬件平台及操作系统,充分利用不同硬件平台以及操作系统的优势,并在数据处理方面加以发挥。
根据近年来美国TPC组织提供的测试报告,Oracle在目前国际上流行的绝大多数硬件平台上均获得了最高的TPC-C测试值。
其中最新的测试值为824,164tpmC。
这些创记录的结果,在数据库市场中尚无其他数据库产品能望其项背。
另据美国著名的<>对几家主要数据库厂家的测试结果,Oracle在数据库的数据装载、数据查询、数据库读/写操作等方面,都获得绝对优势,并连续几年占据评比的第一名。
现在绝大多数硬件公司都以Oracle为数据库基础平台进行测试,也说明Oracle的确让不同的硬件平台发挥出其最佳的效能。
Sybase支撑的硬件平台及操作系统则比较有限,缺乏对MPP系统的支持。
其最高的TPC-C测试值仅为60,366tpmC.
6、并行处理
Oracle的体系结构不仅能大大加快系统的处理速度,增大系统的吞吐量,还能充分利用计算机硬件资源。
以对称多处理SMP结构中,Oracle的多服务器进程能均衡地分散在多个CPU上,使SMP中的多个CPU同时处理请求队列中的用户请求,从而达到利用所有CPU同时工作,并且均分负载的目的。
Oracle的并行查询功能将SQL的查询语句,索引建立语句,数据加载,备份/恢复以及用户程序进行分解,分配给多个CPU同时工作以实现语句级的并行处理,并且均分负载的,以上的并行处理过程,对用户来说是透明的,完全集成在数据库内核中完成;支持应用程序及数据库的性能缩放,即CPU个数增加时,数据库的处理速度和应用程序的执行速度能随之增加,反之亦然,均不需要修改程序或重构数据库系统。
通过数据分区技术,Oracle还可以支持并行的DML操作(插入、删除、修改)。
在松散藕合型的Cluster及海量并行处理结构中,Oracle并行服务器(RealApplicationCluster,以前称为OPS)能充分发挥松散藕合型计算机结构的特点。
Oracle公司在1989年率先推出ParallelServer选件,以支持这种体系结构(Oracle6.2版)。
随着Cluster技术自身的成熟,以及Oracle对这一技术的经验,OracleParallelServer目前已能支持几乎所有的Cluster群机系统。
在share-nothing或shared-disk模式的群机系统上,OracleParallelServer均可以实现多节点共享数据库,并自动并行处理及均分负载,在数据库故障时进行容错和无断点恢复处理。
Oracle并行服务器利用共享磁盘的技术,数据库驻留在共享磁盘中,松散耦合中的所有计算机均能同时对同一份数据库映像进行存储。
另外,Oracle与松散耦合型计算机结构相结合,还能大大提高系统的可靠性及容错能力,当某一台计算机出现故障时,由于数据库是同一份共享的映像,所以不需要系统的重新恢复,从而继续整个系统的运行,达到不间断运行的效果。
Oracle9i最新的并行服务器技术RealApplicationClusters设计了快捷高效的共享集群高速缓存,从而提供了透明的应用程序可扩展性。
RealApplicationClusters是五年多研发工作的结晶,其中包含了13项独家专利和18项已申报的专利请求。
RealApplicationClusters独特之处在于:
a)“开箱即用”,提供接近线性的可伸缩性
b)与应用程序的良好兼容性,无需重新设计
c)快速增长的集群,可快速增添节点和磁盘
OracleRealApplicationCluster能支持的节点数目受操作系统的约束,一般最大可以达256个。
为了能充分发挥对称多处理机SMP中多CPU硬件平台的高性能,Sybase采用了虚拟服务器体系结构(VSA),用单一的进程来模拟多进程处理,当多个CPU同分片的进程处于协调一致时,可以利用多个CPU的高性能;但同时,如果不处于协调一致时,也会成为服务器进程瓶颈。
Sybase不能支持Cluster系统的可伸缩性。
SybaseAdaptiveServerEnterprise只能提供在Cluster系统上的切换功能,提高系统的可用性。
Sybase最近宣布它的CompanionServerOption可以支持Cluster系统的并行处理。
但事实是怎样的呢?
CompanionServerOption只能支持2个节点的Cluster系统,包含一个PrimaryDatabase节点和一个ProxyDatabase节点。
虽然用户可以通过ProxyDatabase节点访问数据库,但ProxyDatabase上只有数据字典是直接访问的,其对数据的访问是通过对PrimaryDatabase的远过程调用实现,所以最终仍然都需经过主数据库(PrimaryDatabase)节点。
PrimaryDatabase的负载并没有减轻。
所以这种配置不能真正提高系统的可伸缩性。
7、数据分区技术
Oracle从Oracle8开始引入了数据分区(Partitioning),这项技术对大规模数据库(VLDB),并行处理和数据仓库都有重大的意义。
Oracle数据分区选件将大表和索引分成可以管理的小块,从而避免了对每个大表只能作为一个单独的对象进行管理。
分区(partitioning)是一种“分而置之”的技术,它为大量数据提供了可伸缩的性能。
分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过包含故障的影响还增加了可用性。
它支持灵活的按不同关键字进行分区的能力。
分区使管理员更容易管理大数据量的表。
管理员可以指定每个分区的存储属性,分区在宿主文件系统中的放置情况,这样便增加了对超大型数据库的控制粒度。
分区可以被单独地卸出或装入,备份,恢复,导出和导入,以及加载;因此减少了需要进行管理操作的时间。
可以对分区实施灵活的增删改等管理工作。
对表分区还可以创建单独的索引分区,从而限制了需要进行索引维护操作的时间。
此外,还提供了种类繁多的局部和全局的索引技术。
分区技术还提高了数据的可用性。
当部分数据由于故障或其它原因不可用时,其它分区内的数据可用不收影响继续使用。
分区对应用是透明的,可以通过标准的SQL语句对分区表进行操作。
Oracle的优化器在访问数据时会分析数据的分区情况,在进行查询时,那些不包含任何查询数据的分区将被忽略,从而大大提高系统的性能。
有了分区以后可以将对数据表的操作,例如DML操作,在多个分区上实现并行,且分区间的并行可做到均衡负载,从而提高系统的性能。
Oracle支持的分区包括:
a)RangePartitioning—对指定关键字按取值范围分区,Oracle自动将记录插入相应的分区。
b)HashPartitioning—基于Hash算法,使用者只需要指定用作Hash分区的关键字和分区数量,Oracle把每条记录均匀插入各个分区。
c)CompositePartitioning—是RangePartitioning和HashPartitioning的组合,使用者可以指定先按某个关键字做RangePartitioning,然后再按另外一些关键字做HashPartitioning。
从而提供更好的并行处理能力。
d)ListPartitioning—当指定关键字的取值可以列表时,可以使用这种分区。
Oracle自动将记录插入相应的分区。
Sybase也宣称有数据分区的功能。
但Sybase的分区与Oracle,IBM,Informix等数据库的分区定义有本质的不同。
实际上,Sybase的分区称为页链更为合适。
在Sybase中,表的存储是以页为单位的,页间以指针连接构成页链。
而将一个表分区实际就是为一个表建多个页链。
在Oracle中早就实现了这种技术(一个表建多个FreeList)。
这种“分区”虽然可以提高查询的并行度,但它没有常规意义上的分区所带来的易于管理和隔离故障的好处。
在并行方面,它也不能象Hash分区那样使数据均匀地分布,所以I/O在各个数据库设备不能均匀地分布,并行操作仍然存在瓶颈。
Sybase的所谓“分区”并不是数据库行业里公认的分区,既不能按键值范围分区,也不能通过Hash函数分区,只是为表的插入增加多个插入点,弥补其页级锁在OLTP环境下难以支持大量并发操作的缺陷。
8、数据库高可靠性
Oracle有一套较完整的容错机制来保证系统的可靠性,它支持联机备份与恢复。
Oracle联机方式的备份,是由一个独立的后台进程完成的,由于该后台进程与负责数据库日常工作的其它进程处于并行工作方式因此,联机备份能保证在做备份时,不影响前台交易进行的速度,并且该后台进程能保证对整个数据库做出完整的备份。
Oracle的联机恢复方式,是以不影响其他用户的交易为前提的。
当局部发生故障时,进行局部修复,不影响同一数据库中其他用户的交易,更不影响网络中其他节点的日常工作。
另外,Oracle的恢复功能,还能将整个数据库恢复到某一时间,还原数据库的某一历史状态。
OracleRealApplicationCluster使系统的可靠性有更显著的提高。
由于是共享磁盘的结构,除非Cluster中所有节点都停机,才会使系统不能被访问。
当任一个节点发生故障时,RAC的其它各个节点都已随时准备好接管它的连接用户,而无需重新启动进程。
Oracle还提供了透明的应用切换,使客户端应用可以被迅速切换到有效节点上,而无需重新连接数据库。
Sybase没有独立的后台进程可供单独工作,所以,在AdaptiveServerEnterprise中内构了一个备份服务器(BackupServer)以实现数据库的联机备份,但由于与其他用户共享进程,在一定程度是影响了其他用户的工作效率,而且还不能确保得到完整的数据备份。
此外,由于Sybase缺乏对数据库的一致性作持续检查的机制,有可能造成实际上已分配给某表的存储空间仍然被标示为“未使用空间”,一旦被重复分配,就会造成数据库损坏(corruption)。
按照Sybase的用户服务合同,在进行备份保存之前,为了检测数据库一致性问题需要运行DBCC。
在DBCC操作过程中,数据库必须保持脱机状态。
DBCC必须经常地运行,以保证数据库的一致性。
尤其备份之前一定要运行。
但DBCC需要脱机运行,数据库需处在单用户方式下,而且运行很慢。
这给一些需要高可用性(24x7)或实施VLDB(大规模数据库)的用户带来了严重的影响。
除了联机备份/恢复的手段外,Oracle和Sybase还有一定的容错能力,实现基于软件的数据库镜像及日志文件的镜像功能,不依赖于计算机硬件平台,即使在硬件平台不提供容错功能的时候,也能为数据库实现容错的保护。
9、分布式处理技术
分布式环境下的各节点必须具有很好的自治能力,以防止某一个点或服务器故障而影响其它服务器正常工作。
Oracle和Sybase都具有这种自治能力。
Oracle分布式数据库从Client/Server出发,经过内核的重新改造,技术上又迈进一大步,成功地支持超越Client/Server的大规模分布式处理。
Oracle分布式数据库不仅支持Client/Server的通讯模式,还有极具特色的服务器与服务器间的透明通讯。
这种服务器自动通讯的方式,使得物理上存放在多个计算机上的数据,对应用程序及开发人员来说,就如同所有的数据仅存放在一台服务器上一样,这就是所谓的“一个逻辑数据库整体”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 各个 方面 产品 对比 SYBASE