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 IC65989 Status: Closed

QUERY PERFORMANCE PROBLEM WITH A JOIN PREDICATE THAT INVOLVES A CASE
STATEMENT THAT RETURNS A MIX OF CONSTANT AND COLUMN VALUES

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
The CASE statement used to generate a value that was applied as 
a start/stop key in an index access, but due to the rewrite of 
the CASE-based predicate to a series of "AND" and "OR" 
pedicates, the rewritten predicate is applied as a SARG 
predicate on an IXSCAN or TBSCAN
Problem Summary:
The CASE statement used to generate a value that was applied as 
a start/stop key in an index access, but due to the rewrite of 
the CASE-based predicate to a series of "AND" and "OR" 
pedicates, the rewritten predicate is applied as a SARG 
predicate on an IXSCAN or TBSCAN
Local Fix:
workaround is to replace one of the simple column expressions or 
constants in the 'THEN' portion of the WHEN clause with a more 
complex expression, or if the CASE does not return a NULL, wrap 
the CASE in a coalesce function (i.e. join_col = coalesce( CASE 
... END, 1))
available fix packs:
DB2 Version 9.7 Fix Pack 2 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 5 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
workaround is to replace one of the simple column expressions or 
constants in the 'THEN' portion of the WHEN clause with a more 
complex expression, or if the CASE does not return a NULL, wrap 
the CASE in a coalesce function (i.e. join_col = coalesce( CASE 
... END, 1))
Workaround
workaround is to replace one of the simple column expressions or 
constants in the 'THEN' portion of the WHEN clause with a more 
complex expression, or if the CASE does not return a NULL, wrap 
the CASE in a coalesce function (i.e. join_col = coalesce( CASE 
... END, 1))
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
02.02.2010
13.05.2010
13.05.2010
Problem solved at the following versions (IBM BugInfos)
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.2 FixList