Announcement

Collapse
No announcement yet.

Optimierung/Index

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Optimierung/Index

    Hallo,
    ich versuche eine ORACLE-DB zu optimieren indem ich einige Indizes vegebe. Die Anweisungen sehen so aus:
    CREATE INDEX IX_T_AENDERUNGSPROT_PERSID ON T_AENDERUNGSPROTOKOLL (PERSID) TABLESPACE xyz_index;
    Ich hatte auch einige Verbesserungen im Laufzeitverhalten erreicht (Faktor 3 bis 4). Die Testergebenisse waren reproduzierbar.
    Dann habe ich die Instanz neu aufgesetzt, indem ich die Tabellen gelöscht, neu erzeugt und gefüllt habe.
    Anschließend waren mene Zugriffszeiten um den Faktor 5 vom ursprünglichen Ausgangswert verschlechtert! Nach einigen Versuchen Indizes löschen, neu erzeugen etc. waren meine Zugriffszeiten wieder optimiert. Beim nächsten Versuch mit einer neuen Instanz wieder das alte Problem.
    Kann mir jemand sagen woran das liegen kann?
    Thanx Joachim

  • #2
    Hallo,

    der Aufbau des B-Tree für den Index ist um einiges besser (gerade bei UNIQUE-Werten), wenn der Index bei gefüllter Tabelle erzeugt wird. Deshalb sollte man bei Tabellen die sich häufig ändern auch immer mal die Indizes mit ALTER INDEX indxName REBUILD; neu aufbauen.

    Wenn du nicht gerade die Standardeinstellung "RULE" für den Optimizer verwendest, dann solltest du noch beachten das die Execution-Plans des Optimizers (und damit die Query-Zeiten) umso besser sind, je aktueller die Analysen der Tabellen und Indizes sind.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment

    Working...
    X