通过setDB2Client*来方便的使用TRACE调优jdbc程序

一般来说通过TRACE的report来分析DDF的性能问题的话,基本对DBA都是噩梦一样。因为所有的Thread都是通过DDF一个类型的Thread,所以不管你怎么分类,看Accounting report都很难分析性能问题。

不过DB2从V9开始JDBC支持通过一系列的set函数设置client端信息,这样就可以将Client的不同SQLs设置为不同的名字来实现性能监控和分析。设置函数举例如下:

        db2conn.setDB2ClientAccountingInformation(qname+"accin");
        db2conn.setDB2ClientUser(qname+"user");
        db2conn.setDB2ClientWorkstation(qname+"wsta");
        db2conn.setDB2ClientApplicationInformation(qname+"appin");
        db2conn.setDB2ClientProgramId(qname+"cliid");

这时候看DB2的accouting trace可看到

PRIMAUTH: USRT001  PLANNAME: q01appin  ,这里的planname就是applicationInformation的信息,所以可以用这个方法来归类不同的SQLs,然后按照PLANAME来分析DDF thread的相关内容。

如果看RETRACE的话,可以看到END_USER和WS_NAME也都按照我们的设置以更改:

RIMAUTH CONNECT   INSTANCE      END_USER       WS_NAME                      
RIGAUTH CORRNAME  CONNTYPE      RECORD TIME    DESTNO ACE IFC  DESCRIPTION  
LANNAME CORRNMBR                TCB CPU TIME              ID                
------- -------- ----------- ----------------- ------ --- --- --------------
SRT001  SERVER   CCE6B1A72042 q01user          q01wsta                      
SRT001  db2jcc_a DRDA        06:12:02.19937131    962   1  63 SQL STATEMENT 
ISTSERV ppli                 N/P                                
原文地址:https://www.cnblogs.com/db2zos/p/3622169.html