XML是一种灵活的语言。在其中用户可以标记自己的tag(标签)来定义其数据类型。在这些tag中用户可以自己定义原理或者属性的名称,这样的话只要得到了XML文件,即使另一个对此系统毫不知情的用户也可以很轻易地读懂这些数据。
当不同的用户在交换数据的时候,只要遵循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以后就会发现其中的每一个模块都是经过精心设计的。如能完整地优化系统,许多数据库常见的问题就不会出现。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
SQL Server 2012 T-SQL指南
在本次的TechTarget《数据库电子书》中,我们将研究许多T-SQL新功能,并通过一些例子来展示它们如何使用。
-
Redis 2.6 Lua脚本功能实现分析
Redis脚本功能的实现代码放在源码的src/scripting.c 文件中,主要分为三部分:Lua嵌入Redis;EVAL和EVALSHA命令的实现;SCRIPT命令的实现。
-
为MySQL数据库增加线程内存监控
使用MySQL中我经常发现mysqld的内存使用会涨的很快(Buffer Pool是大页分配的),以至于使用SWAP,到底Server层用了多少内存,没有一个监控机制。
-
CouchDB让人头痛的十大问题
NoSQL技术爱好者在使用CouchDB的过程中,发现很多不顺手的地方,本文就将对CouchDB十大令人头痛的问题进行一个总结。