home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
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