home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC68711 Status: Closed

DB2 QUERY OPTIMIZER MIGHT NOT ELIMINATE OUTER JOIN WHEN AN ALWAYS
FALSE PREDICATE IS APPLIED IN THE ON CLAUSE

product:
DB2 FOR LUW / DB2FORLUW / 950 - DB2
Problem description:
The rewrite phase of the DB2 query optimizer might not eliminate 
an outer join when an always false predicate is applied in the 
on clause.  The following query is a simple example of such a 
scenario: 
 
select t2.a from t1 left outer join t2 on 1=0; 
 
You can identify whether there are outer joins with false 
predicates in the optimized form of the SQL statement by using 
the EXPLAIN tool and examine the "Optimized Statement" for 
always false predicates such as "1=0".  This fix will eliminate 
the redundant outer join, resulting in improved query execution 
performance.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* The rewrite phase of the DB2 query optimizer might not       * 
* eliminate                                                    * 
* an outer join when an always false predicate is applied in   * 
* the                                                          * 
* on clause.  The following query is an example of such a      * 
* scenario:                                                    * 
*                                                              * 
*                                                              * 
*                                                              * 
* select t2.a from t1 left outer join t2 on 1=0;               * 
*                                                              * 
*                                                              * 
*                                                              * 
* You can identify whether there are outer joins with false    * 
*                                                              * 
* predicates in the optimized form of the SQL statement by     * 
* using                                                        * 
* the EXPLAIN tool and examine the "Optimized Statement" for   * 
*                                                              * 
* always false predicates such as "1=0".  This fix will        * 
* eliminate                                                    * 
* the redundant outer join, resulting in improved query        * 
* execution                                                    * 
* performance.                                                 * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 Version 9.5 Fix Pack 7                        * 
****************************************************************
Local Fix:
You can manually rewrite the outer join to a single table access 
of the row preserving side of the join.
available fix packs:
DB2 Version 9.5 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.5 Fix Pack 10 for Linux, UNIX, and Windows

Solution
Problem was first fixed in Version 9.5 Fix Pack 7
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC71516 IC71517 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
18.05.2010
10.01.2011
10.01.2011
Problem solved at the following versions (IBM BugInfos)
9.5.FP7
Problem solved according to the fixlist(s) of the following version(s)
9.1.0.7 FixList
9.5.0.7 FixList