2008年(239)
分类: Oracle
2008-06-18 00:36:34
尽管常用关系数据库系统:DB2、ORACLE、INFORMIX、SYBASE,在操作、使用、维护等方面存在着很大的差异,但它们在数据库技术的相关理论上是一致的。因此用户在深入了解一种系统之后,就可以很快地掌握另外几种系统。
不同的系统各有其特色。用户往往根据自身对不同系统的偏爱、熟悉程度,来选择要使用的数据库系统。然而,了解各系统的特点,对我们更好地管理和维护系统,还是有很大的帮助。
1. DB2数据库系统
I/O操作一般是系统的运行瓶颈,DB2系统的I/O处理有自己独特的一面。不管表空间使用目录、操作系统文件还是裸设备作为容器,系统都会把表空间中的数据均匀地分布到每一个容器中。如果表空间的容器被放置在不同的磁盘上,将有效地提高I/O的并行处理能力,从而提高系统的I/O处理速度。
对DB2系统的并行处理环境,大多是一个节点运行在一台主机上,每一个节点拥有数据库的一部分数据。系统在处理事务时,会将事务划分为多个子事务,分别在每一个节点上执行,最后将所有子事务的处理结果合并后返回客户。
DB2系统的优化器功能强大,CPU频率、网络通信流量等都是优化器在优化SQL语句时要考虑的因素,强大的优化功能自然要消耗大量的时间、系统资源。为避免这些消耗对系统运行性能的影响,DB2系统要求事先为应用程序中所有静态SQL语句进行绑定,生成执行计划后存放在数据字典中,这样就不用在运行过程中对这些SQL语句进行分析、优化。在数据库结构调整、重新收集了统计信息之后,就需要重新对这些SQL语句进行绑定,因而系统的管理和配置繁琐、复杂。
2. ORACLE数据库系统
从系统的具体实现过程来看,ORACLE系统更强调系统的可靠性、稳定性。例如:由专门的进程负责系统、事务的失败处理,强制在事务结束之前将日志写入磁盘,在每一个数据文件的头部写入检查点信息等等。这些处理方法也使系统的备份、恢复操作更加灵活、方便。由于任何系统都会存在缺陷,我们说ORACLE系统可靠、稳定,只是从它的具体实现过程来看,并不是说它不会出现系统宕机、无法启动等故障。
ORACLE系统可靠、稳定的实现是以牺牲性能作为代价。如果不能很好地规划和调整,系统运行就很大可能会出现性能上的问题。
对ORACLE系统的并行处理环境,大多是一个实例运行在一台主机上,多个实例共享磁盘阵列上的数据库。在一个实例中更新数据,其它实例就不能对相同数据进行更新处理。由于I/O操作往往是系统的运行瓶颈,多个实例对同一数据库中数据的竞争性访问,必然会进一步加大I/O处理的压力,进而降低整个应用系统的性能。
3. INFORMIX数据库系统
操作简单、管理方便是INFORMIX系统的特点。INFORMIX系统易于安装、配置,对它的管理,只需要使用一些简单的命令就可以完成,便于用户掌握和使用。然而它的系统可靠性一直是用户担心的问题。早期的INFORMIX系统版本,仅仅表空间所拥有数据文件的操作权限被改变,就可能造成整个数据库系统的损坏。另外,较少的系统性能、故障分析及跟踪工具,使用户很难对系统中出现的故障进行定位。
4. SYBASE数据库系统
SYBASE数据库系统的安全管理是它的一大特色。任何要访问数据库的用户,必须要在数据库中获得一个帐号、并进行授权,操作系统中的用户帐号是无法访问数据库的。其他的一些用户访问跟踪、数据库对象使用权限链,都很好地增强了系统的安全性。安全管理是SYBASE系统值得炫耀的地方,在它的系统管理资料中,使用了很大的篇幅进行安全管理方面的讲解。
相对于其他的数据库系统,SYBASE系统允许用户直接修改数据字典,这种处理方式增加了系统管理、维护的灵活性,但同时又可能造成数据库系统的意外损坏。尽管SYBASE系统的锁管理实现了死锁检测与恢复、锁超时机制,但许多使用SYBASE系统的用户都曾遇到过由死锁而引起的系统挂起故障。
5. 各数据库系统的比较
总体上来说,DB2、ORACLE系统采用多进程结构,要消耗更多的系统资源。在系统有足够资源的情况下,具有更大的管理、数据处理能力,适合于大数据量处理的应用系统;INFORMIX、SYBASE系统采用多线程结构,需要较少的系统资源,管理和操作简单,但对数据的处理能力有所降低,适合于中等规模的数据处理系统。