【51CTO综述】在上一篇文章中我们看了DB2性能问题分类与分析思路,这次我们来关注一下DB2的实用程序性能优化。
先来看一下如何提高备份操作的性能:
提高数据库配置参数 UTIL_HEAP_SZ 的大小,这个内存区域用来为备份和恢复操作提供缓冲。
减少整库备份,多采用表空间备份需要的表空间。
减少完全备份,多采用增量备份或 DELTA 备份。
增加备份命令中的 PARALLELISM 参数来增加备份的并行性(增加线程或进程)。
增加备份命令中的 BUFFER 参数值。
增加备份的目标目录,最好能将多个目录放在不同的硬盘上,这样可以增加备份的并行程度。
再来看一下如何提高恢复操作的性能:
和备份操作一样,需要增大数据库配置参数 UTIL_HEAP_SZ 的大小。
增加恢复命令中的 BUFFERS 参数值。
增加恢复命令中的 PARALLELISM 参数来增加备份的并行性(增加线程或进程)。
容器分布于不同的硬盘上也可以使恢复操作加快(提高并行性)。
采用 SMP 模式来激活多代理来增加恢复操作的并行性。
提高导入操作(import)的性能 :
import 操作类似 insert 操作,因此很多方法可以参见 insert 的调优步骤。
添加 compound=x 选项可使导入操作批量进行而减少了网络的通信量。
增加 COMMITCOUNT 的值已减少 LOG 的 I/O 次数。
启用缓冲区插入,对 db2uimpm 程序包使用 INSERT BUF 选项重新绑定到数据库。在 import 以前执行命令: db2 bind db2uimpm.bnd insert buf
提高导出操作 (export) 的性能:
Export 操作类似 select 操作,因此很多方法可以参见 select 的调优步骤。
将 export 操作导出的文件放在与数据和日志不同的硬盘上以减少 I/O 的竞争。
提高载入操作 (load) 的性能:load 操作中日志的写操作比 import 要少,所以 load 的性能比 import 要好很多,下面还是看看如何更好地提高 load 的性能。
在多分区环境下,db2 load 会进行并行装载,性能会大幅度提高。
添加 buffer 参数可以增加装载过程中的缓存空间,提高性能。