DB2性能调优

时间:2023-03-09 22:01:13
DB2性能调优

1、更新统计信息

--更新数据库所有表统计信息

--连接到数据库(-v选项,表示要回显命令,以下同)

db2 -v connect to DB_NAME

--查看是否收集过统计信息,什么时候更新的
    db2 -v "select tbname, nleaf, nlevels, stats_time from sysibm.sysindexes"

--更新所有表统计信息
    db2 -v reorgchk update statistics on table all

--再次查看统计信息状态
    db2 -v "select tbname, nleaf, nlevels, stats_time from sysibm.sysindexes"

--中断会话使统计信息起作用
    db2 -v terminate

--更新单表统计信息

db2 -v runstats on table TAB_NAME and indexes all

2、配置缓冲池参数,以确定缓冲池大小

--连接数据库

db2 -v connect to DB_NAME

--查看缓冲池
    db2 -v select * from syscat.bufferpools

--更改默认缓冲池大小
    db2 -v alter bufferpool IBMDEFAULTBP size -1

--断开数据库连接
    db2 -v connect reset

--修改数据库BUFFPAGE参数
    db2 -v update db cfg for dbname using BUFFPAGE bigger_value

--断开数据库连接
    db2 -v terminate

3、生成快照,计算缓冲池命中率

--打开缓冲池监视开关

db2 -v update monitor switches using bufferpool on

--查看是否缓冲池见识开关是否打开
    db2 -v get monitor switches

--重置监视器
    db2 -v reset monitor all  
    -- 运行应用程序

--获取所有数据库快照,并输出到snap.out文件
   db2 -v get snapshot for all databases > snap.out

--获取数据库管理器快照,并输出到snap.out文件
    db2 -v get snapshot for dbm >> snap.out

--获取所有缓冲池快照,并输出到snap.out文件
    db2 -v get snapshot for all bufferpools >> snap.out

--重置监视器
    db2 -v reset monitor all

--断开数据库连接
    db2 -v terminate

--在快照文件snap.out里查找相应指标:logical reads及physical reads

--计算缓冲区命中率

(1 - ((buffer pool data physical reads + buffer pool index physical reads) /(buffer pool data logical reads + pool index logical reads))) * 100%

4、配置日志缓冲相关参数LOGBUFSZ(默认值8*4k)

--更改参数LOGBUFSZ

db2 -v update database cfg for DB_NAME using LOGBUFSZ 256

--断开数据库连接

db2 -v terminate

5、配置应用堆大小参数APPHEAPSZ(DB2 EE为128*4K,DB2 EEE为64*4K)

--更改参数APPHEAPSZ

db2 -v update db cfg for DB_NAME using applheapsz 256

--断开数据库连接

db2 -v terminate

6、配置排序参数SORTHEAP(默认256*4k) 和 SHEAPTHRES

--修改SORTHEAP参数(数据库参数)

db2 -v update db cfg for DB_NAME using SORTHEAP a_value

--修改SHEAPTHRES参数(数据库管理器参数)
    db2 -v update dbm cfg using SHEAPTHRES b_value
    db2 -v terminate

7、配置代理程序参数MAXAGENTS,NUM_POOLAGENTS和NUM_INITAGENTS

--更改MAXAGENTS参数

db2 -v update dbm cfg using MAXAGENTS a_value

--更改NUM_POOLAGENTS参数

db2 -v update dbm cfg using NUM_POOLAGENTS b_value

--更改NUM_INITAGENTS参数
    db2 -v update dbm cfg using NUM_INITAGENTS c_value

--断开数据库连接以使参数更改生效

db2 -v terminate

8、配置锁相关参数LOCKLIST,MAXLOCKS(百分比)及LOCKTIMEOUT(秒)

--更改参数LOCKLIST

db2 -v update db cfg for DB_NAME using LOCKLIST a_number

--更改参数MAXLOCKS

db2 -v update db cfg for DB_NAME using MAXLOCKS b_number

--更改参数LOCKTIMEOUT

db2 -v update db cfg for DB_NAME using LOCKTIMEOUT c_number

--断开数据库连接

db2 -v terminate

9、配置应用相关参数MAXAPPLS

--更改参数MAXAPPLS

db2 -v update db cfg for DB_NAME using MAXAPPLS a_number

--断开数据库连接

db2 -v terminate

10、配置页清除程序相关参数NUM_IOCLEANERS

--更改参数NUM_IOCLEANERS

db2 -v update db cfg for DB_NAME using NUM_IOCLEANERS a_number

--断开数据库连接

db2 -v terminate

9、配置按组提交相关参数MINCOMMIT(默认为1)

--更改参数MINCOMMIT

db2 -v update db cfg for DB_NAME using MINCOMMIT a_number

--断开数据库连接

db2 -v terminate

以上为DB2调优经常调整的参数及用到的语句,供大家参考,如需转载,请注明出处。