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

PERFORMANCE ISSUE WHEN CAST AROUND LITERAL FOR BIT DATA IS PRESENT

product:
DB2 FOR LUW / DB2FORLUW / 980 - DB2
Problem description:
This problem happens ONLY WHEN CAST for BIT DATA and only when 
it is on one side and not another and only when literals. 
DB2 generate non-optimal plans because BIT_STRING function is 
injected and it prevents certain optimization logic. Please 
consider the following examples: 
 
CAST(x'00' AS CHAR(1) FOR BIT DATA) = CAST(x'01' AS CHAR(1) FOR 
BIT DATA) 
- will perform well 
 
x'00'    = x'01' 
- will perform well 
 
CAST(x'00' AS CHAR(1) FOR BIT DATA) = x'01' 
- here PERFROMANCE is BAD.
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* All                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* This problem happens ONLY WHEN CAST for BIT DATA and only    * 
* when                                                         * 
* it is on one side and not another and only when literals.    * 
*                                                              * 
* DB2 generate non-optimal plans because BIT_STRING function   * 
* is                                                           * 
* injected and it prevents certain optimization logic. Please  * 
*                                                              * 
* consider the following examples:                             * 
*                                                              * 
*                                                              * 
*                                                              * 
* CAST(x'00' AS CHAR(1) FOR BIT DATA) = CAST(x'01' AS CHAR(1)  * 
* FOR                                                          * 
* BIT DATA)                                                    * 
*                                                              * 
* - will perform well                                          * 
*                                                              * 
*                                                              * 
*                                                              * 
* x'00'    = x'01'                                             * 
*                                                              * 
* - will perform well                                          * 
*                                                              * 
*                                                              * 
*                                                              * 
* CAST(x'00' AS CHAR(1) FOR BIT DATA) = x'01'                  * 
*                                                              * 
* - here PERFROMANCE is BAD.                                   * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 V9.8 FP4                                      * 
****************************************************************
Local Fix:
rewrite the statement in the following manner 
CAST(x'00' AS CHAR(1) FOR BIT DATA) = CAST(x'01' AS CHAR(1) FOR 
BIT DATA)
available fix packs:
DB2 Version 9.8 Fix Pack 4 for AIX and Linux
DB2 Version 9.8 Fix Pack 5 for AIX and Linux

Solution
First fixed in DB2 v 9.8 Fixpack 4
Workaround
not known / see Local fix
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
07.06.2010
01.08.2011
01.08.2011
Problem solved at the following versions (IBM BugInfos)
9.8.FP4
Problem solved according to the fixlist(s) of the following version(s)
9.8.0.4 FixList