DB2数据库中如何提高性能方法综述

来源:互联网 发布:奥特曼人偶玩具淘宝 编辑:程序博客网 时间:2024/06/02 01:19

DB2数据库中如何提高性能方法综述

 

影响DB2数据库性能的基本要素

1. 硬件资源

1.    要有足够的内存。

2.    要有足够的I/O处理能力。

3.   要有足够的网络带宽。

  2. DB2数据库设置

1.    尽量使用DB2控制中心的DB2性能配置向导。

2.    适当地为表列建立索引。

3.    确保应用程序持有锁的时间尽可能短。

4.    使用存储过程或复合SQL使网络成本降到最低。

5.    有效地使用SQL。

6.    分析存取方案。

二、具体涉及到的影响DB2数据库性能的各个要素的详细描述

1.数据关联

    在几乎所有的数据库中,数据之间都存在着一定的关联性?现在的情况是两两之间或两三之间的是有关联的(sysid等),但是他们之间更基本的关联是不是应该是流程编号呢?正因为这样,当我想查某一个流程下的这些东西的时候,都必须要通过流程信息表、流程节点信息表取转换,这是不是很费时呢?而且想流程信息表、流程节点信息表都是访问非常频繁的表(包括修改、查询),这会给这个表造成多大的压力呢?   

2.   合理的使用视图

    1>往往碰到需要同时从多张表中获取信息,比如GC的凭证表或者台帐的卡片表;

    2>一张大表(里面放了各类信息),经常需要从中取数据,而且每次取数据的时候都需要写的很复杂

3.   合理利用约束

    1>字段非空的约束(根据CMIS中DATA的做法,是完全可以保证非空的)

    2>外键、触发器的使用(反对使用,这会增加数据库的压力,除非有充足的理由来使用)

    3>合理使用UDF,存储过程(这些是非常有用、高效的,但反对任何人都来写UDF、存储过程)

4.   建立有效的索引

提高对表进行查询的性能。当执行查询时,想以更快的速度找到所需的列,或要以索引的顺序显示查询结果时,DB2优化器选择使用索引。

    我们在表设计的时候,往往很少考虑建索引,或者不知道哪些该建索引,怎样建索引,这个就需要多考虑数据间(表间)的关联性(我的观点,给关联的字段加个索引,肯定不会有错),可以举个例子(GC的合同、申请书、凭证间的关联)

    如何建索引?

    1>最多不要超过4个字段(可以视情况)

    2>有效的索引字段视前3个,特别是在连表操作的时候

    3>可以考虑多建几个索引

对于变化很大的表,需要经常重整索引、生成统计信息

5.   命名的规范性

    特别表现在字段的命名上,同一个东西,命名最好是一致,这样在写程序的时候就会方便的多。比如说客户号,有的地方叫custID,有的地方叫custCode,有的地方叫customID……

三、总结

    数据库性能优化是一个永恒的话题,如何使数据库达到最优,还需要不断地读更多的资料,需要不断的积累经验,慢慢总结出一些固有的规律,循续渐进的掌握数据库的调优方法。

 
原创粉丝点击