技术开发 频道

让数据库飞起来 10大DB2优化技巧

【IT168 技术】  为了帮助 DB2 DBA 避免性能灾难并获得高性能,我为我们的客户、用户和 DB2 专家同行总结了一套故障诊断流程。以下详细说明在 Unix、Windows 和 OS/2 环境下使用 DB2 UDB 的电子商务 OLTP 应用程序的 10 条最重要的性能改善技巧 - 并在本文的结束部分作出 总结。

  10. 监视开关

  确保已经打开监视开关。如果它们没有打开,您将无法获取您需要的性能信息。要打开该监视开关,请发出以下命令:

1 db2 "update monitor switches using
2 lock ON sort ON bufferpool ON uow ON
3 table ON statement ON"

  9. 代理程序

  确保有足够的 DB2 代理程序来处理工作负载。要找出代理程序的信息,请发出命令: 

1 db2 "get snapshot for database manager"  

  并查找以下行: 

1 High water mark for agents registered = 7
2 High water mark for agents waiting for a token = 0
3 Agents registered= 7
4 Agents waiting for a token= 0
5 Idle agents= 5
6 Agents assigned from pool= 158
7 Agents created from empty Pool = 7
8 Agents stolen from another application= 0
9 High water mark for coordinating agents= 7
10 Max agents overflow= 0

 

  如果您发现Agents waiting for a token或Agents stolen from another application不为 0,那么请增加对数据库管理器可用的代理程序数(MAXAGENTS 和/或 MAX_COORDAGENTS取适用者)。

  8. 最大打开的文件数

  DB2 在操作系统资源的约束下尽量做一个“优秀公民”。它的一个“优秀公民”的行动就是给在任何时刻打开文件的最大数设置一个上限。数据库配置参数 MAXFILOP约束 DB2 能够同时打开的文件最大数量。当打开的文件数达到此数量时,DB2 将开始不断地关闭和打开它的表空间文件(包括裸设备)。不断地打开和关闭文件减缓了 SQL 响应时间并耗费了 CPU 周期。要查明 DB2 是否正在关闭文件,请发出以下命令: 

1 db2 "get snapshot for database on DBNAME"  

  并查找以下的行: 

1 Database files closed = 0

 

  如果上述参数的值不为 0,那么增加MAXFILOP的值直到不断打开和关闭文件的状态停埂。 

1 db2 "update db cfg for DBNAME using MAXFILOP N"
0
相关文章