WEB开发网
开发学院数据库DB2 DB2数据库性能优化的几个小技巧 阅读

DB2数据库性能优化的几个小技巧

 2008-12-31 16:36:54 来源:WEB开发网   
核心提示: 虽然升级过程本身并不用花很多时间,但是锁定整个表(相对于锁定个别行)降低了并发性,DB2数据库性能优化的几个小技巧(4),而且数据库的整体性能可能会由于对受锁升级影响的表的后续访问而降低,LOCKTIMEOUT 的缺省值是 -1,在排序堆中对数据进行排序,如果由优化器来指导排序堆大小的分配

虽然升级过程本身并不用花很多时间,但是锁定整个表(相对于锁定个别行)降低了并发性,而且数据库的整体性能可能会由于对受锁升级影响的表的后续访问而降低。

LOCKTIMEOUT 的缺省值是 -1,这意味着将没有锁超时(对 OLTP 应用程序,这种情况可能会是灾难性的)。许多 DB2 用户用 LOCKTIMEOUT = -1。将 LOCKTIMEOUT 设置为很短的时间值,例如 10 或 15 秒。在锁上等待过长时间会在锁上产生雪崩效应。

首先,用以下命令检查 LOCKTIMEOUT 的值:

db2 "get db cfg for DBNAME"

并查找包含以下文本的行:

Lock timeout (sec) (LOCKTIMEOUT) = -1

如果值是 -1,考虑使用以下命令将它更改为 15 秒(一定要首先询问应用程序开发者或供应商以确保应用程序能够处理锁超时):

db2 "update db cfg for DBNAME using LOCKTIMEOUT 15"

同时应该监视锁等待的数量、锁等待时间和正在使用锁列表内存(lock list memory)的量。请发出以下命令:

db2 "get snapshot for database on DBNAME"

如果 Lock list memory in use (Bytes) 超过所定义 LOCKLIST 大小的 50%,那么在 LOCKLIST 数据库配置中增加 4k 页的数量。

掩盖问题的—SORTHEAP

SORTHEAP 是一个数据库配置参数,它定义了私有排序所使用的私有内存页的最大数目,或共享排序所使用的共享内存页的最大数目。如果排序是私有排序,那么该参数影响代理程序私有内存。如果排序是共享排序,那么该参数影响数据库的共享内存。

每个排序都有单独的由数据库管理器按需分配的排序堆。在排序堆中对数据进行排序。如果由优化器来指导排序堆大小的分配,那么用优化器提供的信息来分配的排序堆的大小要小于由该参数所指定的排序堆大小。

上一页  1 2 3 4 5  下一页

Tags:DB 数据库 性能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接