【转】 Sybase与Oracle的十二场性能比拼

数据库开发 专栏收录该内容
41 篇文章 0 订阅

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年,著名的市场分析公司Gartner Group就已将Sybase从”Big 5” DBMS市场领先者的名单中删除。

  根据Gartner/Dataquest近期发布的2001年度数据库市场份额统计报告, 在Gartner/Dataquest报告中Oracle依然在主流操作系统Unix和Linux, Windows NT/2000/XP上的关系数据库市场上占据绝对的领先地位,在UNIX上占63%, Windows+Unix上占49.9%。在关系型数据库市场(包括AS/400,Mainframe),Oracle以39.8%仍然处于领先地位。

  根据最新的FactPoint的调查,Oracle数据库依然是Fortune 100公司的首选数据库,其中51%的Fortune 100公司选用Oracle Database作为构建企业的传统应用和电子商务平台。

  FactPoint Group报告的调查结果:

  1、 Oracle仍然是Fortune 100公司的首选数据库平台,Oracle的数据库市场份额远远超过其它竞争对手,其市场份额是第二名的2.5倍。

  2、 51%的Fortune 100公司选用Oracle数据库来构建企业的传统应用和电子商务应用平台。

  3、 Fortune 100所选用的主流应用软件绝大多数选用Oracle数据库平台,其中:100%的Oracle 应用产品;76%的SAP; 72%的PeopleSoft; 81%的Siebel; 73%的i2都选用Oracle数据库平台。

  4、 Oracle数据库产品渗透到Furtune100公司的各个业务领域, 其中75%的财务应用, 72%的人力资源应用, 68%的客户关系管理应用和72%的供应链管理应用都采用Oracle数据库平台。

  5、 Oracle数据库被Furtune100的客户评选为技术最好和与主流应用软件集成最好的数据库平台。

  FactPoint Group调查涉及了与Fortune100公司的IT经理们的400次会谈,其调查结果根据Fortune 100公司的数据库产品的使用状况,真实体现了当今企业中数据库部署与使用的状况,根据FactPoint Group的调查Oracle数据库技压群雄,仍然保持了企业数据库市场份额的领头羊地位。

  ORACLE 与 Sybase 技术先进性的比较

  Oracle数据库与Sybase数据库相比,无论从体系架构、并行支持、完整性控制等各方面均有很大的优势。

  1、体系结构的比较

  Oracle采用多线索多进程体系结构,直接在内核中支持分布式数据库操作、多线索处理、并行处理以及联机事务处理等 。Oracle企业级服务器从结构上说,同时支持集中式多用户环境、Client/Server、分布式处理和Internet计算结构;从技术上说,为应用程序及系统开发人员实现了透明的网络环境、混合网络结构以及分布式数据管理等

  Sybase采用单进程多线索体系结构,其核心是SQL Server(现在为与Microsoft SQL Server区别,改名为Adaptive Server Enterprise),在Client/ Server体系结构的基础上,架构了复制服务器(Replication Server)和多功能通用网关(Omni SQL Gateway,现在叫Enterprise CONNECT)等部件,从而形成了软件产品系列。

  2、多线索多进程与单进程多线索的比较

  Oracle和Sybase都采用多线索。采用多线索的模式,能用较少的线索管理大量的用户进程;并且,线索进程是动态可调整的,当用户数增加时, 线索进程也会阶段性地自动增加;当用户数减少时,线索进程也会自动减少。多线 索结构,大大降低了Oracle和Sybase对系统资源的占用,提高了系统资源的利用率。

  对于Oracle的体系结构,在集中式多用户环境下,每个用户单独占用一个服务器进程;在Client/Server 和Internet方式下可以采用多个用户共享进程,以多线索方式执行用户的请求。另外,针对特别级别的用户,可以单独占用一个 服务器进程,实现最优级别的用户请求。Oracle的服务器进程是用来同时处理 数据库请求的,它们从请求队列中拿出申请,进行语法分析、权限检查以及一系列的内部操作,并协调Oracle其他后台进程,以共同完成申请的处理,并把操 作结果返回到回答队列。Oracle多服务器进程结构,能实现数据库事务的并行 处理,提高并发事务处理的响应速度。并且多服务器结构具有非常灵活的扩充 性,当硬件平台处理能力提高时,服务器进程的个数也能随之增加,数据库性 能也随之提高。多服务器结构,避免了单服务器结构中很容易造成的服务器进 程瓶颈现象,也避免了因此而引起的单服务器进程死锁的现象。

  Sybase采用单进程多线索方式,用户请求都由一个进程来进 行总的调度和管理。在单服务器并采用单一的Client/Server模式下其对数据库的管理比较简单,内存资源占用较少,在并发用户数较少的情况下,其对系统资源的利用率比采用多进程方式要高;但同时,当并发用户数达到一定的数量时,会引起系统处理性能大大下降,和服务器进程瓶颈及死锁等现象;同时系统的可扩展余地非常狭窄。

  3、系统集成度

  Oracle服务器上的Oracle多线索多进程结构以及并行查询,分布式数据库、高级复制等功能都是 直接在Oracle核心中实现的,无需添加额外的服务器,不要求额外的系统配置 ,也不会带来额外的的系统管理负担,更不会产生由API带来编程的变化。

  Sybase由实现不同功能的不同服务器组成(ASE, Replication Server, Enterprise Connect, 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主要采用了支持存储过程(Stored Procedure)、Log成组提交以及基于成本的优化等技术。其设计思想分别和Oracle中数据库共享缓存管理以及查询优化机制相似,从功能处理上没有Oracle的全面和有效。长期以来,Sybase采用页级封锁机制来解决写/写冲突,使用户的并发事务受到很大限制,集中体现在用户的并发事务达到一定数量时,系统实现上容易陷入瘫痪的状态。在ASE的新版本中才引入行级锁,然而,Sybase的行级锁并不彻底,它采用可升级的行级锁,可升级的行级锁随着系统活动级别的增加,为管理内存的使用,会升级原有锁的级别——当系统并发访问较多时,会引起行级锁升级为页级锁。所以系统对大量并发的控制并没有实质的改善。例如,用户A在修改某个客户信息,将可能影响用户B修改其它客户信息。不必要的资源竞争 ,较低的系统并发性,对关键业务的OLTP系统是无法忍受的。

  由于缺少读一致性的多版本模式,Sybase不能提供一致性和并发性兼得的解决方案。为了使读操作不阻塞写操作,Sybase使用脏读(Dirty Read)技术。虽然提高了性能和并发性,但带来了读到的数据可能与数据库中的数据不一致的结果。另一方面,如果要保证读一致性,Sybase采用加读锁技术,而用户A的读锁不能与用户B的写锁同时加在同一个数据块上,因此,用户A必须等待,直到用户B的事务处理结束,释放写锁后,才能继续进行读操作。或者用户B必须等待用户A读操作完成后才能进行写操作。读和写操作互相阻塞,大大增加了死锁的可能。

  5、硬件平台及操作系统的适用性

  Oracle能支持几乎所有常见的硬件平台及操作系统,这种支持不是简单 的内核移植,而是针对不同的硬件平台及操作系统,充分利用不同硬件平台以及操作系统的优势,并在数据处理方面加以发挥。

  根据近年来美国TPC组织提供的测试报告,Oracle在目前国际上流行的绝大多数硬件平台上均获得了最高的TPC-C测试值。其中最新的测试值为824,164 tpmC。这些创记录的结果,在数据库市场中尚无其他数据库产品能望其项背。另据美国著名的<

  >对几家主要数据库厂家的测试结果,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并行服务器(Real Application Cluster,以前称为OPS)能充分发挥松散藕合型计算机结构的特点。Oracle公司在1989年率先推出Parallel Server选件,以支持这种体系结构(Oracle6.2版)。随着Cluster技术自身的成熟,以及Oracle对这一技术的经验,Oracle Parallel Server目前已能支持几乎所有的Cluster群机系统。在share-nothing或shared-disk模式的群机系统上,Oracle Parallel Server均可以实现多节点共享数据库,并自动并行处理及均分负载,在数据库故障时进行容错和无断点恢复处理。

  Oracle并行服务器利用共享磁盘的技术,数据库驻留在共享磁盘中,松散耦合中的所有计算机均能同时对同一份数据库映像进行存储。另外,Oracle与松散耦合型计算机结构相结合,还能大大提高系统的可靠性及容错能力,当某一台计算机出现故障时,由于数据库是同一份共享的映像,所以不需要系统的重新恢复,从而继续整个系统的运行,达到不间断运行的效果。

  Oracle9i最新的并行服务器技术 Real Application Clusters设计了快捷高效的共享集群高速缓存,从而提供了透明的应用程序可扩展性。Real Application Clusters是五年多研发工作的结晶,其中包含了13项独家专利和18项已申报的专利请求。Real Application Clusters独特之处在于:

  a)“开箱即用”,提供接近线性的可伸缩性

  b)与应用程序的良好兼容性,无需重新设计

  c)快速增长的集群,可快速增添节点和磁盘

  Oracle Real Application Cluster能支持的节点数目受操作系统的约束,一般最大可以达256个。

  为了能充分发挥对称多处理机SMP中多CPU硬件平台的高性能,Sybase采用了虚拟服务器体系结构(VSA),用单一的进程来模拟多进程处理,当多个CPU同分片的进程处于协调一致时,可以利用多个CPU的高性能;但同时,如果不处于协调一致时,也会成为服务器进程瓶颈。

  Sybase不能支持Cluster系统的可伸缩性。Sybase Adaptive Server Enterprise只能提供在Cluster系统上的切换功能,提高系统的可用性。

  Sybase最近宣布它的Companion Server Option可以支持Cluster系统的并行处理。但事实是怎样的呢?Companion Server Option只能支持2个节点的Cluster系统, 包含一个Primary Database节点和一个Proxy Database节点。虽然用户可以通过Proxy Database节点访问数据库,但Proxy Database上只有数据字典是直接访问的,其对数据的访问是通过对Primary Database的远过程调用实现,所以最终仍然都需经过主数据库(Primary Database)节点。Primary Database的负载并没有减轻。所以这种配置不能真正提高系统的可伸缩性。

 

4、联机事务处理

  联机事务处理是比较特殊的一类应用,一般体现为同时工作的用户数较 多,对数据的操作申请比较简单,但要求比较快的响应时间。针对这类应用, 计算机系统必须提供一个能支持大量同时工作的用户,并提供比较大的系统吞吐量来消化用户的大量申请。具体来说,就是要有较好的用户管理手段、有效的内存缓冲区管理、优化的I/0进程控制、有效的系统封锁处理、快速的网络管理功能等等。因此,为了在联机事务处理应用中达到较好的性能,应以适用于联机事务处理的硬件平台、操作系统、网络环境为基础,配合数据库处理,才能实现理想的联机事务处理。

  Oracle的多线索技术在相同硬件环境下,所支持的用户数是其他数据库 系统的5至10倍。Oracle的多进程技术从根本上加快每一个用户申请的处理速度,特别是在大量申请需要处理的情况下,它能保持内存中请求队列在大部分时间处于队列空的状态。更为灵活的是,Oracle多进程的数量是动态可调整的,使用相应的系统参数,可以控制服务器进程个数、当应用环境、工作量、硬件环境等发生变化时,可以构造不同的Oracle服务器进程,使用户的申请在任何时候都能保持较快的处理效率。

  数据库共享缓存管理,是影响联机事务处理性能的一个关键因素,能充分且有效地利用高速缓存,就能大大减少许多重复操作,大大减少不必要的I/O,从而提高语句的执行速度。Oracle有一套十分有效的内存高速缓存管理的技术,编译后的SQL语句共享缓冲区、预读入技术、日志记录缓存等。

  在多用户并发工作的情况下,写/写冲突及读/写冲突是主要的影响实时操作效果的因素,是联机事务需要解决的主要问题。Oracle采用行级封锁来解决写/写冲突,当用户要对一张表进行修改或更新操作时,会自动锁定要修改的记录“行”,而不是整张表。当其他用户同时也要修改同一张表时,也锁定各自需要修改的记录“行”,只有在两个或多个用户需要修改同一记录行时,才会出现排队等待锁资源释放的现象。这种行级封锁大大降低了冲突的机率,与页级锁或表级锁相比,大大提高了系统的吞吐量。

  Oracle采用读一致快照技术来解决读/写冲突,而不是采用传统的读锁方式。当一用户对某一记录进行修改时,系统会自动生成一个该记录的拷贝, 称为读一致性快照。而另一用户同时要读取这一记录行时,读操作将读取读一致快照的内容,而不用加读锁。因此读操作将不被写操作所阻塞;同样,写操作也同样不会被读操作所阻塞。可见Oracle的行级封锁及读一致性快照技术,使得在大量用户并发工作的联机事务处理环境下,用户发生冲突而排队等候的现象减少到了最低,大大提高了系统的吞吐量,提高实时响应的速度。

  另外,Oracle还有灵活的查询优化机制,确保查询操作的快速完成, 如基于成本的智能优化、哈希方法、分布式查询优化等,都能以不同的使用方法,为不同层次的用户自动提供最佳的优化方案, 而无需用户编程指明。

  为了能提高事务的吞吐量和低的响应时间,Sybase主要采用了支持存储过程(Stored Procedure)、Log成组提交以及基于成本的优化等技术。其设计思想分别和Oracle中数据库共享缓存管理以及查询优化机制相似,从功能处理上没有Oracle的全面和有效。长期以来,Sybase采用页级封锁机制来解决写/写冲突,使用户的并发事务受到很大限制,集中体现在用户的并发事务达到一定数量时,系统实现上容易陷入瘫痪的状态。在ASE的新版本中才引入行级锁,然而,Sybase的行级锁并不彻底,它采用可升级的行级锁,可升级的行级锁随着系统活动级别的增加,为管理内存的使用,会升级原有锁的级别——当系统并发访问较多时,会引起行级锁升级为页级锁。所以系统对大量并发的控制并没有实质的改善。例如,用户A在修改某个客户信息,将可能影响用户B修改其它客户信息。不必要的资源竞争 ,较低的系统并发性,对关键业务的OLTP系统是无法忍受的。

  由于缺少读一致性的多版本模式,Sybase不能提供一致性和并发性兼得的解决方案。为了使读操作不阻塞写操作,Sybase使用脏读(Dirty Read)技术。虽然提高了性能和并发性,但带来了读到的数据可能与数据库中的数据不一致的结果。另一方面,如果要保证读一致性,Sybase采用加读锁技术,而用户A的读锁不能与用户B的写锁同时加在同一个数据块上,因此,用户A必须等待,直到用户B的事务处理结束,释放写锁后,才能继续进行读操作。或者用户B必须等待用户A读操作完成后才能进行写操作。读和写操作互相阻塞,大大增加了死锁的可能。

  5、硬件平台及操作系统的适用性

  Oracle能支持几乎所有常见的硬件平台及操作系统,这种支持不是简单 的内核移植,而是针对不同的硬件平台及操作系统,充分利用不同硬件平台以及操作系统的优势,并在数据处理方面加以发挥。

  根据近年来美国TPC组织提供的测试报告,Oracle在目前国际上流行的绝大多数硬件平台上均获得了最高的TPC-C测试值。其中最新的测试值为824,164 tpmC。这些创记录的结果,在数据库市场中尚无其他数据库产品能望其项背。另据美国著名的<

  >对几家主要数据库厂家的测试结果,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并行服务器(Real Application Cluster,以前称为OPS)能充分发挥松散藕合型计算机结构的特点。Oracle公司在1989年率先推出Parallel Server选件,以支持这种体系结构(Oracle6.2版)。随着Cluster技术自身的成熟,以及Oracle对这一技术的经验,Oracle Parallel Server目前已能支持几乎所有的Cluster群机系统。在share-nothing或shared-disk模式的群机系统上,Oracle Parallel Server均可以实现多节点共享数据库,并自动并行处理及均分负载,在数据库故障时进行容错和无断点恢复处理。

  Oracle并行服务器利用共享磁盘的技术,数据库驻留在共享磁盘中,松散耦合中的所有计算机均能同时对同一份数据库映像进行存储。另外,Oracle与松散耦合型计算机结构相结合,还能大大提高系统的可靠性及容错能力,当某一台计算机出现故障时,由于数据库是同一份共享的映像,所以不需要系统的重新恢复,从而继续整个系统的运行,达到不间断运行的效果。

  Oracle9i最新的并行服务器技术 Real Application Clusters设计了快捷高效的共享集群高速缓存,从而提供了透明的应用程序可扩展性。Real Application Clusters是五年多研发工作的结晶,其中包含了13项独家专利和18项已申报的专利请求。Real Application Clusters独特之处在于:

  a)“开箱即用”,提供接近线性的可伸缩性

  b)与应用程序的良好兼容性,无需重新设计

  c)快速增长的集群,可快速增添节点和磁盘

  Oracle Real Application Cluster能支持的节点数目受操作系统的约束,一般最大可以达256个。

  为了能充分发挥对称多处理机SMP中多CPU硬件平台的高性能,Sybase采用了虚拟服务器体系结构(VSA),用单一的进程来模拟多进程处理,当多个CPU同分片的进程处于协调一致时,可以利用多个CPU的高性能;但同时,如果不处于协调一致时,也会成为服务器进程瓶颈。

  Sybase不能支持Cluster系统的可伸缩性。Sybase Adaptive Server Enterprise只能提供在Cluster系统上的切换功能,提高系统的可用性。

  Sybase最近宣布它的Companion Server Option可以支持Cluster系统的并行处理。但事实是怎样的呢?Companion Server Option只能支持2个节点的Cluster系统, 包含一个Primary Database节点和一个Proxy Database节点。虽然用户可以通过Proxy Database节点访问数据库,但Proxy Database上只有数据字典是直接访问的,其对数据的访问是通过对Primary Database的远过程调用实现,所以最终仍然都需经过主数据库(Primary Database)节点。Primary Database的负载并没有减轻。所以这种配置不能真正提高系统的可伸缩性。

 

10、数据完整性控制

  Oracle具有一套完整的数据库完整性控制机制,这些控制也是直接嵌入Oracle核心中实现的。如:实体完整性约束、自动对表中字段的取值进行正确与否的判断、自动的引用完整性约束、可自动对多张表进行相互制约的控 制等。实体完整性以及引用完整性均为申明式的,就是说,只要简单地建立或修改表的定义完整性规则,以后Oracle DBMS会自动实施这些约束。这样把应用开发和维护成本降到了最低(因为没有代码),也改善了应用可靠性(由DBMS 来确保实施),并且降低实施开销(Oracle优化约束实施操作)。

  另外,Oracle还提供用PL/SQL书写的存储过程的触发器,在多个层次上实施很复杂的商业规则。存储过程及触发器可以包含一条或多条SQL语句, 也可以包含多个PL/SQL程序块,它们经编译后存储在Oracle中。存储过程 可以被其他Oracle工具调用,并支持远程客户的调用,这就是远过程调用。触发器则会在每次对数据进行插入、更新、删除时,自动被触发。Oracle触发器有很强的功能,如每当一种特定部件的库存下降超过一定界限时,一个触发器可以自动生成一个新的定单,触发器可用于维护导出数据,执行基于内容的审计,以及执行同步的表副本复制。触发器可在触发语句之前或之后执行(或称事前触发及事后触发);既可以是由一条语句也可以是由每一行触发执行。Oracle强有力的触发器严格遵从ANSI SQL中的标准定义。

  在Sybase中,由Adaptive Server集中实现数据完整性控制。支持申明 定义完整性约束。用Datatype、Default、Rule等来提供字段完整性及字段与表的关系,用触发器实现参照完整性。

  Sybase中的数据完整性控制相对Oracle来说显得非常有限。实体完整性提供的功能显得非常不足,往往需要用户在程序中加入很多有关实体完整性的控制代码,执行效率不高,系统可适应性不好,如加或减一个实体约束往往需要修应用程序。其触发器实现的是事后回退方式,如果一个事务引进一连串的事务回退,势必降低事务的处理能力。

  11、数据库安全控制

  Oracle的安全控制机制,是由系统权限、数据权限、角色权限这三级体系结构组成的。所谓系统权限,是指对数据库系统及数据结构的操作权,例如 :创建/删除数据链路、同义词、审计、索引、存储过程、触发器等等。所谓数据权限,是指用户对数据的操作权,如查询、更新、完整性约束、运行存储过程等等。所谓角色权限,是把几个相关的权限组织成角色,角色之间可以进一步组合而成为多层次的树型结构,这是Oracle把现实世界中的行政管理方式融入RDBMS中。角色权限除了限制操作权、控制权外,还能限制执行某些应用程序的权限。这样安全控制体系,使得整个系统的管理人员及程序开发人员能控制系统命令的运行、数据的操作以及应用程度的执行。这一安全体系已通过了美国计算机(NCSC)C2级标准的测试。实际上,对命令运行权及应用执行权的控制,已超出了C2级标准。在一些安全级别达到B1级标准的操作系统平台上, Oracle还有以B1级标准建立的Oracle产品,B1级产品的主要特点是除了以对象名(表名、列名、索引等)为基础来限制存取的离散型安全管理外,还有以数据安全程度为基础来限制存取的强制型安全管理。

  Oracle还提供了虚拟私有数据库(Virtual Private Database), 实现了行级加密。不同的用户访问同一张表将是不同的数据集,再也无需在应用里作任何控制。

  另外,Oracle可按系统和用户的要求,可对表及视图进行各种审计,完成对数据库系统的审计追踪,如:什么用户参与了哪些操作,操作的对象,操作数据的记录及操作成功与否等。以此可以检测异常或可疑用户的操作,以及未授权的访问。

  除了保障数据库一级的安全性外,Oracle公司还提供了安全的网络服务。通过Oracle安全网络服务,在网络上传递的SQL语句、查询结果、存储过程调用、数据复制、用户口令等所有信息,都可以经RC4或DES加密传递,使数据在传送过程中,不被泄密。同时,Oracle公司的安全网络服务还支持带有序列号的校验和算法(MD5),保证数据在传送过程中不被非法修改;数据包不被重发,漏发。Oracle的安全网络服务是通过纯软件的方式实现,具有成本低、硬件无关、协议无关的特点。Oracle公司是唯一一家提供安全网络服务的数据库公司。

  Sybase对数据库的安全性控制是比较初级的。其主要特性有 :明确的登录识别、加密的口令和口令的截止日期、命名的系统管理员以及系统是否登录成功、用户在数据库中的活动等等。Sybase的安全控制定位于NCSC的C2级安全标准。

  12、数据仓库的支持

  对数据仓库的支持是Oracle数据库的传统的应用领域,也有许多成功的范例。数据仓库应用一般体现为操作比较复杂,涉及到的数据量比较大,但并发工作的程度不太多,对速度的要求也不太强烈,这类应用除了要求数据库系统有较强的数据管理手段,如:完整性控制、安全性控制、 可靠性保障等之外,还特别要求数据库系统能支持大数据量,支持有效的语句优化,强有力的统计功能以及较强的批处理能力等,在分布式环境的应用中,还要求数据库能支持较强的穿透查询(透明查询)等。Oracle对数据库对于数据完整性控制、安全性、可靠性等,均有较完善的技术。分布式透明查询,表和索引的分区也是Oracle的长处,针对决策支持系统,Oracle还有许多相适应的机制,保证决策支持系统的成功及效率。

  Oracle能支持大型及超大型数据库系统,在应用实例中,Oracle支持的最大数据库为几十个TB。从技术的角度上着,Oracle所支持的数据库最大容量的限制为512PB(1PB=1024TB),所以实际上只取决于硬盘空间。

  当数据库需要扩充时,Oracle只需要一条命令就可扩充数据库,而不需要引起整个数据库的重构。另外,Oracle还提供了丰富的数据分区技术,使对大量历史数据的管理更加方便,处理更有效率。对于超大规模数 据量的支持,以及有效的数据分区手段,为决策支持应用系统奠定了坚实的基 础。

  决策支持系统一般会涉及到许多不同要求的统计以及科学计算等,Oracle提供的SQL语句,在满足了SQL评议的标准要求之外,还有丰富的函数及计算功能,如单值函数(数字型、字符型等等)、强有力的集合运算、日期函数 ,Cube和Rollup, Rank (Top-N ), Rate, Sample(取样)等等,这些函数的灵活运用,不仅能大大简化应用程序的编程,并且可以直接在Oracle的内存缓冲区直接计算,减少了大量数据在数据库及应用程序之间的交换,加快运行的效率。

  另外,Oracle还有灵活的查询优化机制,确保查询操作的快速完成。对涉及到较大的数据量,可能需要较长时间来处理的查询语句,Oracle能自动将其分解成几个部分,利用Oracle核心的多线索多进程结构,进行多线索的并行处理。同时,对于大数据量的I/O操作,Oracle也能充分利用并行的I/O处理,把较浪费时间的I/O,操作利用并行的方式降低系统等待的时间。Oracle已申请专利的位图索引,星型并行查询技术尤其适用于数据仓库的查询。

  Oracle还具有支持极强的批处理能力,如数据库核心中的SQL*Loader,提高了数据库批量加截的速度,SQL*Plus也具有极强的处理能力,能以批处理方式进行数据访问,及数据更新。

  Sybase支持大型及超大型数据库的能力很差,完整性约束依靠事后触发回退、复制服务器、多功能通用网关以及用户编程一起协调实现;分布式处理条件下的查询和修改均不是以自动透明方式进行,复制无法利用两阶段提交技术,只能采用异步方式;查询 优化单一,语句的分解优化过重依赖于用户来提高性能;并行处理能力以及批处理能力都很弱。从这些数据仓库应用的关键技术来说,可以说Sybase ASE的数据仓库支持能力是非常差的。

  所以Sybase购买了一个产品来弥补这方面的缺陷,并改名为Sybase IQ. 但这个产品与Sybase ASE并不兼容,不能象访问ASE一样通过T-SQL访问。它通过建立基于位的索引加快查询。但它只能用于查询,而且当数据量超过GB级以后性能会有明显的下降。并发访问的用户很有限,因为每个连接都会消耗大量内存。所以Sybase IQ的可伸缩性较差,不适用于大规模的数据仓库。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值