BaseBallBatBoy
Erfahrenes Mitglied
Hi
Mit folgender Query erhalte ich keinen Record (explain plan: unique scan, verwendet den Index myindex):
Ich weiss aber, dass es den Record gibt! Also versuche ich es mit dieser Query (explain plan: full table scan):
Und schon erhalte ich den Record.
Ich erhalte also zwei verschiedene Resultate wenn ich den Index brauche oder nicht brauche.
Der Fix davon ist mir bekannt: index rebuild.
Was ich dabei aber nicht verstehe ist, wie es überhaupt zu einem solchen korrupten Index kommen kann? Und noch die wichtigere Frage: wie kann ich das in Zukunft verhindern? Es ist leider nicht das erste mal, dass dieser Fall eingetreten ist, und es ist schwierig festzustellen, dass mit dem Index etwas nicht in Ordnung ist.
(DBMS ist Oracle 11g EE 11.2.0.2.0 64bit)
Mit folgender Query erhalte ich keinen Record (explain plan: unique scan, verwendet den Index myindex):
SQL:
SELECT
a, b, c, valid_to, pk_mykey, myobject
FROM
myschema.mytable
WHERE
valid_to = to_date('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss')
AND
myobject = 'ABC.123';
Ich weiss aber, dass es den Record gibt! Also versuche ich es mit dieser Query (explain plan: full table scan):
SQL:
SELECT
/*+ NO_INDEX(mytable myindex) */
a, b, c, valid_to, pk_mykey, myobject
FROM
myschema.mytable
WHERE
valid_to = to_date('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss')
AND
myobject = 'ABC.123';
Und schon erhalte ich den Record.
Ich erhalte also zwei verschiedene Resultate wenn ich den Index brauche oder nicht brauche.
Der Fix davon ist mir bekannt: index rebuild.
Was ich dabei aber nicht verstehe ist, wie es überhaupt zu einem solchen korrupten Index kommen kann? Und noch die wichtigere Frage: wie kann ich das in Zukunft verhindern? Es ist leider nicht das erste mal, dass dieser Fall eingetreten ist, und es ist schwierig festzustellen, dass mit dem Index etwas nicht in Ordnung ist.
(DBMS ist Oracle 11g EE 11.2.0.2.0 64bit)
Zuletzt bearbeitet von einem Moderator: