Optimizer messages with DB2 Multisystem

 

The i5/OS® distributed query optimizer provides you with information messages on the current query processing when the job is in debug mode.

These messages, which show how the distributed query is processed, are in addition to the existing optimizer messages. These messages appear for the Open Query File (OPNQRYF) command, DB2® UDB Query Manager and SQL Development Kit, interactive SQL, embedded SQL, and in any high-level language (HLL). Every message appears in the job log; you only need to put your job into debug mode.

You can evaluate the performance of your distributed query by using the informational messages put in the job log by the database manager. The database manager can send any of the following distributed messages or existing optimizer messages when appropriate. The ampersand variables (&1, &X) are replacement variables that contain either an object name or another substitution value when the message appears in the job log:

These messages provide feedback on how a distributed query is run, and, in some cases, indicate the improvements that can be made to help the query run faster. The causes and user responses for the following messages are paraphrased here. The actual message help is more complete and needs to be used when you try to determine the meaning and responses for each message.

CPI4341

Performing distributed query.

This message indicates that a single distributed file was queried and was not processed in multiple steps. This message lists the nodes of the file where the query was run.

CPI4342

Performing distributed join for query.

This message indicates that a distributed join occurred. This message also lists the nodes where the join was run as well as the files that were joined together.

CPI4343

Optimizer debug messages for distributed query step &1 of &2.

This message indicates that a distributed query was processed in multiple steps and lists the current step number. Following this message are all the optimizer messages for that step.

CPI4345

Temporary distributed result file &4 built for query.

This message indicates that a temporary distributed result file was created and lists a reason code as to why the temporary file was required. This message also shows the partitioning key that was used to create the file and the nodes that the temporary file was created on.

The following example shows you how to look at the distributed optimizer messages that are generated to determine how the distributed query is processed. The example uses the distributed files, EMPLOYEE and DEPARTMENT.
SQL:      SELECT A.EMPNO, B.MGRNO, C.MGRNO, D.EMPNO              FROM   EMPLOYEE A, DEPARTMENT B, DEPARTMENT C, EMPLOYEE D              WHERE  A.EMPNO=B.MGRNO                          AND  B.ADMRDEPT=C.DEPTNO                          AND  C.DEPTNO=D.WORKDEPT  
OPNQRYF:  OPNQRYF FILE((EMPLOYEE) (DEPARTMENT) (DEPARTMENT) (EMPLOYEE))
                  FORMAT(JFMT)
                  JFLD((1/EMNO 2/MGRNO *EQ)
                       (2/ADMRDEPT 3/DEPTNO)
                       (3/DEPTNO 4/WORKDEPT))

The following list of distributed optimizer messages is generated:

Additional tools that you might want to use when tuning queries for performance include the CL commands Print SQL Information (PRTSQLINF), which applies to SQL programs and packages, and Change Query Attributes (CHGQRYA).

 

Parent topic:

Query design for performance with DB2 Multisystem