• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > DB2教程 >

DB2数据库性能调优10条

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-09-04点击:

 这篇文章主要是针对e-business OLTP的10个性能方面的Tips。

10. Monitor Switches
打开Monitor Switch,才能获得性能方面的信息,命令如下
        db2 "update monitor switches using lock ON sort ON bufferpool ON uow ON table ON statement ON"
 
9. Agents
要保证有足够的agent应付系统负载
命令:db2 "get snapshot for database manager"
要察看“Agents waiting for a token” 或者“ Agents stolen from another application”,如果有值,就需要增加DB manager的agent值,就是修改MAXAGENTS 和/或者 MAX_COORDAGENTS的值。
 
High water mark for agents registered = 7
High water mark for agents waiting for a token = 0
Agents registered= 7
Agents waiting for a token= 0
Idle agents= 5
Agents assigned from pool= 158
Agents created from empty Pool = 7
Agents stolen from another application= 0
High water mark for coordinating agents= 7
Max agents overflow= 0
 
8. Maximum Open Files
最大的打开文件数目
DB2限制同时打开的文件数目,数据库参数"MAXFILOP"限定了并发打开的文件数目。如达到这个数目,DB2就会开始关闭和打开Tablespace文件,包括raw device,这样会降低SQL反映时间和占用CPU。
使用命令来查看是否有文件关闭情况:
db2 "get snapshot for database on DBNAME"
看看其中的 "Database files closed = 0"
 
如果值不为零,就要修改MAXFILOP,
db2 "update db cfg for DBNAME using MAXFILOP N"
 
7. Locks
缺省的LOCKTIMEOUT=-1,就是说不设置lock的timeout,在OLTP中这可能是一个灾难。然而很多DB就是这么设置的。要设置比较小的数值,比如设置LOCKTIMEOUT=10或者15秒。
察看命令:
db2 "get db cfg for DBNAME",
看看下面的信息:
Lock timeout (sec) (LOCKTIMEOUT) = -1
 
要和应用人员将明白,他们是否已经在程序中可以处理timeout的情况。然后设置
db2 "update db cfg for DBNAME using LOCKTIMEOUT 15"
 
可以在系统中察看lock wait的数目,lock wait time, lock list 使用的内存量。
db2 "get snapshot for database on DBNAME"
察看:
        Locks held currently= 0
        Lock waits= 0
        Time database waited on locks (ms)= 0
        Lock list memory in use (Bytes)= 576
        Deadlocks detected= 0
        Lock escalations= 0
        Exclusive lock escalations= 0
        Agents currently waiting on locks= 0
        Lock Timeouts= 0
 
 
如果lock list的内存量(bytes)超过LOCKLIST 的50%,那么需要增加LOCKLIST的量,LOCKLIST是按4k计算。
 
6. Temporary Tablespaces
临时表空间一般要有3个containers在不同的disk上,可以实现并行I/O,提高sorts, hash joins,或者其他在TEMPSPACE上的动作的性能。
 
db2 "list tablespaces show detail", 可察看临时表空间的container,
 
        Tablespace ID= 1
         Name= TEMPSPACE1
         Type= System managed space
         Contents= Temporary data
         State= 0x0000
          Detailed explanation: Normal
         Total pages= 1
         Useable pages= 1
         Used pages= 1
         Free pages= Not applicable
         High water mark (pages)= Not applicable
         Page size (bytes)= 4096
         Extent size (pages)= 32
         Prefetch size (pages)= 96
         Number of containers= 3
这里表示有3个container,Prefetch size是Extent size的3倍。为了最好的并行性能,最好Prefetch size是Extent size的倍数。一般倍数是container的数目。
 
db2 "list tablespace containers for 1 show detail"
可以看到containers的定义。
 
5. SORT MEMORY
OLTP应该没有大规模的sort,因为sort会消耗大量的CPU, I/O和时间。
缺省的SORTHEAP = 256*4K=1M,一般是足够了。应该知道sort overflows 的数目和每个交易的sort number。
Db2 "get snapshot for database on DBNAME"
察看如下项目:
标签: db2数据库
猜你也喜欢看这些...

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ