DB2 - Problembeschreibung
| Problem IC62624 | Status: Geschlossen |
QUERY REWRITE MAY NOT FULLY OPTIMIZE A PREDICATE CONTAINING A NESTED DISJUNCT (OR) INSIDE A NESTED CONJUNCT (AND) | |
| Produkt: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
| Problembeschreibung: | |
A query predicate may not be optimized fully if the following
conditions are satisfied:
- predicate contains one or more nested conjuncts (nested AND)
- Nested AND has one or more OR sub-terms (nested OR sub-term)
- sub-terms of Nested OR can be proven TRUE or FALSE at
compile-time.
An example of this:
-- DDL
CREATE TABLE T1 (ID INT);
CREATE TABLE T2 LIKE T1;
-- Query 1
SELECT *
FROM T1,
T2
WHERE T2.ID = 1 -- <-- P1
AND (
(
TI.ID = 1 -- <-- Standalone via conjunction
AND -- <-- Nested conjunct (resolves to
first sub-term)
(
T2.ID = 1 -- <-- TRUE via equivalence to P1
OR -- <-- Nested OR (resolves to TRUE)
T2.ID IS NULL -- <-- FALSE via comparison to P1
)
)
OR -- <-- Resolves to first sub-term
(
T1.ID = 2
AND -- <-- Nested conjunct (resolves to
FALSE)
(
T2.ID = 2 -- <-- FALSE via comparison to P1
OR -- <-- Nested OR (resolves to
FALSE)
T2.ID IS NULL -- <-- FALSE via comparison to P1
)
)
)
;
Query 1 above is semantically equivalent to Query 2 below:
-- Query 2
SELECT *
FROM T1,
T2
WHERE T2.ID = 1
AND T1.ID = 1 | |
| Problem-Zusammenfassung: | |
Users Affected: Any with a query that involves a a nested OR inside a nested AND statement Problem Description: Query rewrite may not choose the optimial rewrite strategy for a particular statement Problem Summary: see above. | |
| Local-Fix: | |
Manually rewriting the predicate(s) in question as indicated for Query 1 in the description example. | |
| verfügbare FixPacks: | |
DB2 Version 9.7 Fix Pack 1 for Linux, UNIX, and Windows | |
| Lösung | |
Problem was first fixed in Version 9.7 FixPak 1 | |
| Workaround | |
Manually rewriting the query may resolve this (see APAR details) | |
| Weitere Daten | |
Datum - Problem gemeldet : Datum - Problem geschlossen : Datum - der letzten Änderung: | 18.08.2009 28.12.2009 28.12.2009 |
| Problem behoben ab folgender Versionen (IBM BugInfos) | |
9.7. | |
| Problem behoben lt. FixList in der Version | |
| 9.7.0.1 |
|