分类:
2008-04-24 09:53:33
当不同的用户在交换数据的时候,只要遵循XML标准,每一个应用程序可以针对自己所使用的数据类型编写XML解释器,将XML文件中的数据轻易地转化成自己使用的数据类型,这样就可以保证在不同的应用程序之间数据得以快速地交流。
但是作为存储数据的数据库,以往的基于关系的表并不能够很好地适应这种新的需求。用户仍然需要花费大量时间将XML数据转化到关系类型然后输入数据库,或者根据需要编写复杂的查询再将这些数据读取出来。这种方法既添加了难度,也降低了效率。原本的XML文件会被重新解析到各个表中,这个过程对于复杂或者有着大数据量的系统来说是相当消耗资源的。
DB2 9数据库相对于其他数据库管理系统来说有了大幅度的创新。实际上,DB2 9对于XML的支持不仅仅体现在XML类型的数据上,一些用关系模型难以解决的问题也可以使用XML模型得以解决。DB2 9对XML的支持与经典的关系数据模型相比所具有的优势是不可忽略的。
与其他主流数据库管理系统比起来,DB2有其优势也有自己的不足。在处理datawarehouse系统上DB2的性能应该是非常优秀的,同时DB2对优化器做的相当完美,对于大部分复杂查询可以有效地将其重写为最优语句,并且分配合理的执行计划。
DB2在关闭机制上有一定的不足。这与DB2的设计框架相关,内存锁的使用在提升效率的同时也对系统的优化要求提到了最高。如果用户对数据库的本身优化和应用程序优化做的不足,那么DB2会容易出现锁等待现象。
此外,DB2在API与函数的提供上还不完善。但是多伦多实验室的人正在尽力完善这个模块,在DB2 9中我们期待看到更多更为强大的函数。
同时,对于所有的数据库系统高可用性也是一个比较令人头疼的问题。在DB2中的高可用性对于普通用户来说可能比较复杂,但是IBM有一些经典的技术文档可以用来参照帮助用户自己设置。对于管理多分区系统的DBA来说,怎样对各分区协调,如何合理设置分区键是重要的。
作为技术支持小组的人,需要真正深入理解各分区之间的通讯与工作机制是最重要的。记得以前看过一篇文章说DB2的share nothing架构是骗人的东西,个人认为是因为他对DB2多分区理论只是做了一些文字上的理解,但是对于其中的内存CPU,磁盘资源的分配却根本没有理解。
也许很多人都认为DB2比起其他的数据库系统要复杂很多,但是个人认为那是由于这些人对其底层的架构和模型不了解所导致的。真正意义上理解DB2以后就会发现其中的每一个模块都是经过精心设计的。如能完整地优化系统,许多数据库常见的问题就不会出现。