Sybase与Oracle的十二场性能比拼
2006-12-27 21:27:01 来源:WEB开发网7、数据分区技术
Oracle(大型网站数据库平台)从Oracle(大型网站数据库平台)8开始引入 了数据分区(Partitioning),这项技术对大规模数据库(VLDB), 并行处理和数据仓库都有重大的意义。
Oracle(大型网站数据库平台)数据分区选件将大表和索引分成可以管理的小块,从而避免了对每个大表只能作为一个单独的对象进行管理。分区(partitioning)是一种“分而置之”的技术,它为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过包含故障的影响还增加了可用性。它支持灵活的按不同关键字进行分区的能力。
分区使管理员更容易管理大数据量的表。管理员可以指定每个分区的存储属性,分区在宿主文件系统中的放置情况,这样便增加了对超大型数据库的控制粒度。分区可以被单独地卸出或装入,备份,恢复,导出和导入,以及加载;因此减少了需要进行管理操作的时间。可以对分区实施灵活的增删改等管理工作。对表分区还可以创建单独的索引分区,从而限制了需要进行索引维护操作的时间。此外,还提供了种类繁多的局部和全局的索引技术。
分区技术还提高了数据的可用性。当部分数据由于故障或其它原因不可用时,其它分区内的数据可用不收影响继续使用。
分区对应用是透明的,可以通过标准的SQL语句对分区表进行操作。Oracle(大型网站数据库平台) 的优化器在访问数据时会分析数据的分区情况,在进行查询时,那些不包含任何查询数据的分区将被忽略,从而大大提高系统的性能。有了分区以后可以将对数据表的操作,例如DML操作,在多个分区上实现并行,且分区间的并行可做到均衡负载,从而提高系统的性能。
Oracle(大型网站数据库平台)支持的分区包括:
a) Range Partitioning—对指定关键字按取值范围分区,Oracle(大型网站数据库平台)自动将记录插入相应的分区。
b) Hash Partitioning—基于Hash算法,使用者只需要指定用作Hash 分区的关键字和分区数量,Oracle(大型网站数据库平台) 把每条记录均匀插入各个分区。
c) Composite Partitioning—是Range Partitioning和Hash Partitioning的组合,使用者可以指定先按某个关键字做Range Partitioning,然后再按另外一些关键字做Hash Partitioning。从而提供更好的并行处理能力。
d) List Partitioning—当指定关键字的取值可以列表时,可以使用这种分区。Oracle(大型网站数据库平台)自动将记录插入相应的分区。
Sybase也宣称有数据分区的功能。但Sybase的分区与Oracle(大型网站数据库平台), IBM, Informix等数据库的分区定义有本质的不同。实际上,Sybase的分区称为页链更为合适。在Sybase中,表的存储是以页为单位的,页间以指针连接构成页链。而将一个表分区实际就是为一个表建多个页链。在Oracle(大型网站数据库平台)中早就实现了这种技术(一个表建多个Free List)。这种“分区”虽然可以提高查询的并行度,但它没有常规意义上的分区所带来的易于管理和隔离故障的好处。在并行方面,它也不能象Hash分区那样使数据均匀地分布,所以I/O在各个数据库设备不能均匀地分布,并行操作仍然存在瓶颈。Sybase的所谓“分区”并不是数据库行业里公认的分区,既不能按键值范围分区,也不能通过Hash函数分区,只是为表的插入增加多个插入点,弥补其页级锁在OLTP环境下难以支持大量并发操作的缺陷。
8、数据库高可靠性
Oracle(大型网站数据库平台)有一套较完整的容错机制来保证系统的可靠性,它支持联机备份与恢复。Oracle(大型网站数据库平台)联机方式的备份,是由一个独立的后台进程完成的,由于该后台进程与负责数据库日常工作的其它进程处于并行工作方式因此,联机备 份能保证在做备份时,不影响前台交易进行的速度,并且该后台进程能保证对 整个数据库做出完整的备份。Oracle(大型网站数据库平台)的联机恢复方式,是以不影响其他用户的交易为前提的。当局部发生故障时,进行局部修复,不影响同一数据库中其 他用户的交易,更不影响网络中其他节点的日常工作。另外,Oracle(大型网站数据库平台)的恢复功能,还能将整个数据库恢复到某一时间,还原数据库的某一历史状态。
Oracle(大型网站数据库平台) Real Application Cluster使系统的可靠性有更显著的提高。由于是共享磁盘的结构,除非Cluster中所有节点都停机,才会使系统不能被访问。当任一个节点发生故障时,RAC的其它各个节点都已随时准备好接管它的连接用户,而无需重新启动进程。Oracle(大型网站数据库平台) 还提供了透明的应用切换,使客户端应用可以被迅速切换到有效节点上,而无需重新连接数据库。
Sybase没有独立的后台进程可供单独工作,所以,在Adaptive Server Enterprise中内构 了一个备份服务器(Backup Server)以实现数据库的联机备份,但由于与其他用户 共享进程,在一定程度是影响了其他用户的工作效率,而且还不能确保得到完整的数据备份。
此外,由于Sybase缺乏对数据库的一致性作持续检查的机制,有可能造成实际上已分配给某表的存储空间仍然被标示为“未使用空间”,一旦被重复分配,就会造成数据库损坏(corruption)。按照Sybase的用户服务合同,在进行备份保存之前,为了检测数据库一致性问题需要运行DBCC。在DBCC操作过程中,数据库必须保持脱机状态。
DBCC必须经常地运行,以保证数据库的一致性。尤其备份之前一定要运行。但DBCC需要脱机运行,数据库需处在单用户方式下,而且运行很慢。这给一些需要高可用性(24x7)或实施VLDB(大规模数据库)的用户带来了严重的影响。
除了联机备份/恢复的手段外,Oracle(大型网站数据库平台)和Sybase还有一定的容错能力,实现基于软件的数据库镜像及日志文件的镜像功能,不依赖于计算机硬件平台,即使在硬件平台不提供容错功能的时候,也能为数据库实现容错的保护。
9、分布式处理技术
分布式环境下的各节点必须具有很好的自治能力,以防止某一个点或服务器故障而影响其它服务器正常工作。Oracle(大型网站数据库平台)和Sybase都具有这种自治能力。
Oracle(大型网站数据库平台)分布式数据库从Client/Server出发,经过内核的重新改造,技术 上又迈进一大步,成功地支持超越 Client/Server的大规模分布式处理。
Oracle(大型网站数据库平台)分布式数据库不仅支持Client/Server的通讯模式,还有极具特色的服务器与服务器间的透明通讯。这种服务器自动通讯的方式,使得物理上存放在多个计算机上的数据,对应用程序及开发人员来说,就如同所有的数据仅存放在一台服务器上一样,这就是所谓的“一个逻辑数据 库整体”的含义。
Oracle(大型网站数据库平台)具有极强的分布式处理能力。如透明的分布式查询、透明的分布式修改和分布式数据复制。透明的分布式查询由数据库同义词及数据库链路(Database Link) 支持,能实现数据库的自动寻址,用户勿需关心数据的物理存放位置。透明的分布式更新是通过自动的两阶段提交技术实现的。Oracle(大型网站数据库平台)自动协调各服务器事务,操作要么一起成功,要么一起失败,以保护分布式环境下的数据在任一时刻都于一致的状态。分布式数据复制技术有实时复制(Real-time Replication)、存储转发复制(Stored-and-forward Replication)、以及基于时间的复制(Time-based Replication)等三种方式。如实时复制,根据应用实际需要,在本地服务器上生成一个数据库触发器(Database trigger),一旦本地数据库有数据操作,立即将所需复制数据一次复制到多个分布式节点上,而且是与本地操作同步执行。存储转发复制,由Oracle(大型网站数据库平台)提供的复制日志实现,即把所有需要复制的数据记录在日志中,若日志记录中的数据量达到一定的程度时,Oracle(大型网站数据库平台)自动将日志记录复制到各目的地上。基于时间的复制,由Oracle(大型网站数据库平台)数据库参数实现,由该参数决定数据刷新的时间或间隔,Oracle(大型网站数据库平台)会自动按此间隔时间定期将远地节点的相差数据传适到本地快照表中,并且自动刷新,本地用户可以利用此快照表数据,并结合本地数据进行复杂的分布式查询。
以上三种方法复制的数据,在使用方法上,均可做为本地数据来使用。 可对其进行查询,修改等。对复制数据的修改,可以进一步广播到其他复制版及原版上,这就是所谓的数据N-向复制。对于N-向复制,Oracle(大型网站数据库平台)有一些自动实现的冲突检测和解决技术,保护N-向数据复制时的分布数据一致性。
Oracle(大型网站数据库平台)的两阶段提交加上复制技术,为分布式环境下不同的应用需求提供了灵活的选择。例如,对于联机事务处理的分布环境,可以选用两阶段提 交或实时复制技术,以保证分布式数据的实时的一致性。对于实时要求不太严格的环境,可以使用另外两种复制技术,甚至在同一种系统中某些数据操作可选用实时的方法,某些数据操作可以选用异步的方法。Oracle(大型网站数据库平台)以完整而且灵活的分布式处理技术,来满足不同应用环境的需要。
除此这外,Oracle(大型网站数据库平台)还有分布式环境下的自动查询优化,分布式死锁检测和自动解锁、分布式环境下的数据库管理、分布式数据库全局命名机制等。 所有这些功能,均从更大范围实现了数据库的分布式处理。
在Sybase中, Adaptive Server Enterprise是RDBMS的核心,主要是为Client/Server结构设计的 ,为了适应分布式数据库系统环境,另外提供了复制服务(Replication Server)和 多功能通用网关(Enterprise Connect)。其中,复制服务器(Replication Server)从功能处理上同Oracle(大型网站数据库平台)中的存储转发复制(Stored-and-forward Replication)类似,它提供分布式条件下的异步复制,它通过不断地将主表上的更新传递到复制的备份上,当系统的局部出现故障时,不致影响整个系统。一旦网络上故障排除,这种服务器将可以以同步方式恢复分布式数据库。但复制服务器本身成为一个单故障点,如果它出了问题,整个系统的所有复制均无法进行。多功能通用网关(Enterprise Connect)解决地点的透明性和数据库的透明性。这两个产品并不集成在数据库核心中,需额外的许可证费用。
Sybase不具备自动的服务器与服务器之间自动协调和两阶段提交技术 ,分布式条件下的查询和更新必须由ASE和多功能通用网关以及复制服务器共同协调实现。所以,Sybase提供给用户大量的编程库,用户可通过编程实现分布式处理。Sybase强调其灵活性,强调用户能做任何事情,但这是与高集成性 的发展趁势背道而驰的,用户需要做大量的编程工作,这也是Sybase不足之处。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接