Neueste VersionenFixList
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
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

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
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 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 6 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

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 FixList