Announcement

Collapse
No announcement yet.

DELETE auf Tabelle - Index deaktivieren?

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

  • DELETE auf Tabelle - Index deaktivieren?

    Hallo,

    ich habe eine Tabelle mit mehreren Millionen Datensätzen und einigen Indizes. Nun will ich bis auf wenigen Datensätze alle Sätze löschen, in Abhängigkeit eines indizierten Feldes. Macht es Sinn, alle Indizes vorm DELETE zu deaktivieren oder haben Indizes beim DELETE keinen Einfluss?

    Ich stell mir quasi folgende Frage: Wird beim Löschen eines Satzes aus der Tabelle gleichzeitig der entsprechende Index gelöscht? Dann würde es natürlich mit aktivierten Indizes länger dauern. Oder wird evtl. nach abgeschlossenem DELETE der Index komplett neu aufgebaut? Dann gäbe es ohne Index keinen Zeitvorteil.

    Danke,
    MIKE

  • #2
    Hi,

    jeder Index wird bei DML mitgepflegt. Egal ob Insert, Update oder Delete. Je mehr Indices auf einer Tabelle liegen, desto langsamer sind DMLs.

    Code:
    Nun will ich bis auf wenigen Datensätze alle Sätze löschen
    In diesem Fall wärs besser, die Sätze die du behalten möchtest in eine temporäre Tabelle zu kopieren, die original Tabelle per TRUNCATE TABLE zu leeren und dann die Sätze wieder zurückzu kopieren.

    Dauert nur wenige Sekunden, während die andere Methode auch Stunden dauern kann.

    Dim
    Zitat Tom Kyte:
    I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

    Comment


    • #3
      Hallo Dim,

      danke für den Hinweis. So ähnlich hatte ich das schon "befürchtet" und die temporären Tabellen hatte ich auch schon ins Auge gefasst.

      Danke,
      MIKE

      P.S.: Kann es sein, dass Du mir damals bei Spotlight schon manchmal geholfen hast ;o)

      Comment


      • #4
        Das kann schon sein. Zumindest bin ich der spotlight Dim ;-)
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          Fein, denn ich bin der spotlight mikewazowski.

          Danke noch mal ;o)

          Comment

          Working...
          X