Wie " set session variable skip_unusable_indexes zu wahren, die in einer PL/SQL-Paket, um die Geschwindigkeit einer Tabelle löschen/einfügen?
Ich versuche zu beschleunigen, eine Daten-Last, die Steuerung erfolgt über eine PL/SQL-Prozedur. Ich habe programmgesteuert verändert die Indizes für die Tabelle, die ich aktualisieren möchten nicht verwendet werden. Ich möchte Oracle, ignorieren diese unbrauchbar Indizes. Ich kann das Problem der Aussage:
ALTER SESSION SET skip_unusable_indexes = TRUE
aber ich habe anschließend den Fehler:
ORA-01502: index 'MY_INDEX_NAME' oder partition von Z-index ist in
unbrauchbaren Zustand
so ist es offenbar ignoriert mein alter session.
Kann ich ändern, meine Sitzung innerhalb eines PL/SQL-Paket? Wenn nicht, was ist meine alternative?
Wie sonst könnte ich deaktivieren (set unbrauchbar) die Indizes zur Beschleunigung der Last?
Etwas Verwandte Frage hier.
InformationsquelleAutor dacracot | 2008-10-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie der Erteilung der Anweisung ALTER SESSION in der gleichen Sitzung, dass die gespeicherte Prozedur verwenden? Oder ist das ALTER SESSION ausgeführt, in einer separaten Sitzung?
Können Sie einbetten, die auch ALTER SESSION in Ihrem PL/SQL mit dynamischem SQL, d.h.
Sind einige der Indizes eindeutig ist (oder erzwingen, eine unique-Einschränkung)? Als die skip_unusable_indexes Dokumentation Staaten
Wenn das der Fall ist, können Sie deaktivieren Sie die Einschränkung und/oder ändern Sie den index(es) nicht einzigartig?
Einen kurzen Eindruck von dem Unterschied zwischen eindeutigen und nicht eindeutigen Indizes. Hinweis: wenn Sie eine unbrauchbare eindeutigen index, skip_unusable_indexes nicht unterdrücken ORA-01502 Fehler wie es funktioniert, wenn Sie eine unbrauchbare non-unique-index.
Ist der index eindeutig? Wenn ja, siehe edit ich habe gerade.
Ich denke nicht, dass das relevant ist, sind die ORA-01502 Fehler beschwert sich, dass der index unbrauchbar ist (das ist beabsichtigt) nicht, dass eine unique-constraint verletzt wurde.
Aber das ist der Punkt, der die Aussage "diese Einstellung nicht deaktivieren Sie die Fehlerberichterstattung für unbrauchbar Indizes, die einzigartig sind". Siehe den edit-ich habe gerade mit einer demonstration.
Ok, ich sehe Ihren Punkt. Also habe ich versucht, das deaktivieren des unique-Einschränkungen und läuft wieder, aber die ORA-01502 noch auftaucht.
InformationsquelleAutor Justin Cave