|
1.影响DB2性能的因素有哪些?
影响DB2性能的因素主要有五个方面:内存,CPU , I/O ,操作系统,网络。在内存方面,主要是考虑缓冲池 (BUFFERPOOL) 的使用。缓冲池的大小决定了能够从磁盘上缓冲数据的容量大小。当然缓冲池也不是越大越好,缓冲池过大可能会导致连接数据库的时间过长,因为在连接数据库时要为数据库的缓冲池分配内存空间。在内存方面要考虑的另外几个重要因素是排序堆 (SORTHEAP),锁列表 (LOCKLIST), 日志缓冲区 (LOGBUFSZ) 。关于 CPU 因素首先是考虑 DB2 优化器 (OPTIMIZER) 对访问计划 (ACCESS PLAN) 的分析。 I/O 因素要考虑以下几个方面:首先是磁盘的 I/O,其次要考虑的是日志文件的大小,在连接方面还要考虑到代理和连接的关系,这也会影响到数据库的并发性。操作系统: 数据库存在于操作系统之上,操作系统的性能将直接影响到数据库的运行效率,网络: 网络将会影响到数据库的 I/O 性能
2.如何有效地提高I/O性能?
为了能够最大化磁盘的 I/O, 可以把数据,索引以及日志分别放在不同的硬盘上。因为在一个事务中数据和索引可能需要同时访问,而在事务提交时,数据和日志要同时写入磁盘,而且有可能索引也要同步维护,所以将它们放在不同的硬盘上可以使它们的读写并行运行,从而不致使磁盘成为瓶颈。同时选择数据库管理表空间 (DMS) 要比系统管理表空间 (SMS) 性能要好,因为读写 SMS 需要经过操作系统的 cache 再到缓冲池,而可以采用裸设备的 DMS 则不需要。但是 DMS 相对 SMS 来说维护起来较麻烦。
其次要考虑的是日志文件的大小,当数据库在写事务日志时当一个日志文件写满后会转向另外一个日志文件,这种日志文件的切换会造成操作系统上的开销。所以应当尽量将日志文件大小(LOGFILSIZ)设得大一些,这样可以减少日志文件切换的次数。但是日志文件过大难免会造成一些空间的浪费。
同时也要考虑到隔离级别的因素,在 DB2 中隔离级别分成 4 级:可重复的读,读稳定性,游标稳定性和未提交的读。这四种级别逐个降低,越高的隔离级别越能保证数据完整性,但却会降低并发性,所以应当综合权衡后做出决定。隔离级别可以通过如下命令来改变:
CHANGE ISOLATION TO=CS|RR|RS|UR
在连接方面还要考虑到代理和连接的关系,这也会影响到数据库的并发性。
最后要考虑的还是关于多分区的特性。在多分区数据库中,一个请求首先传到协调分区,然后由协调分区将请求细分成多个部分发送到其他分区,这样数据可以在各个分区进行并行读写,实现 I/O 最大化。
3. DB2的发展需要什么?
a.DB2相对于oracle ,没有oracle的市场占有率高,感觉与IBM的市场策略有关,需要加强推广。
b.Oracle的资料多,论坛也多,db2的书籍、论坛就少了。DB2的学习人员没有oracle学习的人多。我觉得要像Oracle学习,个人学习的话可以随便用,不要让大家感觉DB2很神密,也很封闭。
c.IBM或IBM的技术产品代理公司的DB2工程师来各大企业和高等院校开讲座,做推广,让更多的人了解DB2和学习DB2。
d.而DB2对很多人来说,合适的资料比较缺乏。技术专家和资深工程师结合自已的运维经验多写和出版一些DB2的书籍。
e.IBM公司可以借鉴oracle的市场运营模式,开展相应级别的DB2技术证书认证,增加DB2技术证书的含金量和名声。
4.说说读完试读章节后您的感想。
试读后,发现文章大篇福介绍了优化器的工作原理,对编写sql的用处很大,我个人觉得从事过sql语言开发的人转型做DB2上手比较快的。 |
|