DB2 - Problem description
| Problem IC95358 | Status: Closed |
UNEXPECTED OPTIMIZED STATEMENT FOR VIEW | |
| product: | |
DB2 FOR LUW / DB2FORLUW / A50 - DB2 | |
| Problem description: | |
DB2 may create unexpected optimized statement for view.
bad/slow: predicate is <case_exp> = <const>
good/fast: predicate is <base_column> = <const>
Rewrite rule CASEPRD changes the first predicate to, e.g.,
(((NULL = 'xxxxxx') AND
(Q1.AAAAAA = '')) OR
((Q1.AAAAAA = 'xxxxxx') AND
(Q1.AAAAAA <> '')))
= 'xxxxxx'
Rule caseprd handles value NULL in the same way as regular
constant and produce an equal predicate "(NULL = 'xxxxxx')". | |
| Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * DB2 UDB Version 10.5 * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to Version 10.5 FixPack 3. * **************************************************************** | |
| Local Fix: | |
Change (case AAAAAA when '' then null else AAAAAA end) to (case when AAAAAA <> '' then AAAAAA end) i.e. avoid using NULL value explicitly as a THEN clause. Then, predicate "(case when AAAAAA <> '' then AAAAAA end) = 'xxxxxx'" can be rewritten to "AAAAAA = 'xxxxxx'". | |
| available fix packs: | |
DB2 Version 10.5 Fix Pack 3 for Linux, UNIX, and Windows | |
| Solution | |
Problem was first fixed in DB2 UDB Version 10.5 FixPack 3. | |
| Workaround | |
not known / see Local fix | |
| Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 27.08.2013 27.02.2014 27.02.2014 |
| Problem solved at the following versions (IBM BugInfos) | |
| Problem solved according to the fixlist(s) of the following version(s) | |
| 10.5.0.3 |
|
| 10.5.0.3 |
|