优化DB2数据库应用系统性能的深入研究

数据库
我们今天是要与大家一起探讨的是DB2数据库应用系统性能的优化深入研究,如果你对其心存好奇的话,以下的文章将会揭开它的神秘面纱。

http://database.51cto.com/art/201008/215674.htm以下的文章主要是介绍DB2数据库应用系统性能的优化深入研究,我们大家都知道DB2数据库它是一种高性能的大型关系数据库管理系统,其广泛的应用在客户/服务器体系结构中。评价系统性能优化的标准有:吞吐量、响应时间、并行能力等。

 

设计数据库

1. 熟悉业务系统

对业务系统的熟悉程度对整个DB2数据库系统的性能有很大影响,一个对业务不熟悉的设计人员,尽管有丰富的数据库知识,也很难设计出性能最佳的数据库应用系统。

2. 规范化与非规范化

数据库被规范化后,减少了数据冗余,数据量变小,数据行变窄。这样DB2的每一页可以包括更多行,那么每一区里的数据量更多,从而加速表的扫描,改进了单个表的查询性能。但是,当查询涉及多个表的时候,需要用很多连接操作把信息从各个表中组合在一起,导致更高的CPU和I/O花销。

那么,有很多时候需要在规范化和非规范化之间保持平衡,用适当的冗余信息来减少系统开销,用空间代价来换取时间代价。有订单信息表OrderDetail,它里面记录了投递员信息,收款员信息,物品信息,价格策略,客户信息…..这些信息分别在投递员信息表、收款员信息表、物品信息表、价格策略表、客户信息表中存放。

如果按照规范化的要求,OrderDetail查询时就必须要与这么多个表进行连接或者嵌套查询。如果OrderDetail表中的数据量是在百万级的,那么一次查询所需要的时间可能会达到好几个小时。事实上,只要在设计时保证数据的逻辑有效性,很多信息都可以直接冗余在OrderDetail表中,这些冗余的数据能够极大的提高查询的效率,从而减少CPU和I/O操作。

3. 数据条带化

如果一个表的记录条数超过一定的规模,那么最基本的DB2数据库应用系统性能查询操作也会受到影响,需要将该表根据日期水平划分,把最近、最经常用的数据和历史的、不经常用的数据划分开来,或是根据地理位置、部门等等进行划分。

还有一种划分方式――垂直划分,即把一个属性列很多的表分割成好几个小表,比如把经常用到的属性放在一个表里,不经常用到的属性放在另一个表里,这样可以加快表的扫描,提高效率。

4. 选择数据类型

对每一属性选择什么样的数据类型很大程度上依据表的要求,但是在不违背表要求的前提下,选择适当的数据类型可以提高系统性能。比如有text列存放一本书的信息,用BLOB而不是character(1024),BLOB存放的是指针或者文件参照变量,真正的文本信息可以放在数据库之外,从而减少数据库存储空间,使得程序运行的速度提高。DB2提供了UDT(User Defined Datatypes)功能,用户可以根据自己的需要定义自己的数据类型。

5. 选择索引

索引是DB2数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。使用索引可以快速、直接、有序的存取数据。索引的建立虽然加快了查询,另一方面却将低了数据更新的速度,因为新数据不仅要增加到表中,也要增加到索引中。另外,索引还需要额外的磁盘空间和维护开销。因此,要合理使用索引:

在经常进行连接,但是没有指定为外键的属性列上建立索引。

在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。按索引来排序或分组,可以提高效率。

在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。

如果待排序的列有多个,可以在这些列上建立复合索引(compound index),即索引由多个字段复合而成。

以上的相关内容就是对DB2数据库应用系统性能优化深入探究的介绍,望你能有所收获。

【编辑推荐】

  1. DB2基本操作指令30条中的前十条操作指令
  2. DB2数据库为单个会话锁定“窍门”
  3. 快速掌握DB2数据移动的操作技巧
  4. DB2建立database Partition的点滴
  5. DB2数据库备份成功与否的正确验证方式描述
责任编辑:佚名 来源: 51CTO
相关推荐

2010-08-26 15:48:21

DB2优化数据库

2010-08-09 13:22:40

DB2应用系统

2009-02-26 09:34:16

性能优化DB2数据库

2010-08-17 17:29:06

DB2性能优化

2011-03-02 17:56:40

DB2数据库

2010-08-04 15:59:29

2010-08-17 09:11:42

DB2数据库备份性能

2010-08-12 09:49:51

优化DB2数据库备份

2010-08-27 11:03:44

DB2数据库性能调整

2010-08-27 10:20:11

DB2数据库优化

2011-03-21 09:51:04

DB2性能优化

2010-07-28 14:07:51

DB2数据库

2011-03-25 14:07:12

IBMDB2数据库数据移动

2011-03-11 16:02:03

DB2数据库安装

2011-05-27 16:00:10

DB2

2010-08-11 17:24:13

DB2数据库优化

2010-08-02 08:40:43

DB2数据库性能

2010-09-06 13:30:47

DB2数据库优化

2015-10-23 16:32:29

DB2数据库性能

2010-09-07 15:58:24

DB2数据库性能
点赞
收藏

51CTO技术栈公众号