Announcement

Collapse
No announcement yet.

Performanceproblem mit dem IN-Operator

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

  • Performanceproblem mit dem IN-Operator

    Hallo,

    ich habe folgendes Problem bzw. folgende Frage. Bei einem Select-Befehl wird über den In-Operator ca. 100 - 500 Parameter abgefragt:
    Code:
    SELECT Col1 From Tabelle1 WHERE Col2 IN ('var1',var2','var3',....,'var300')
    Die Antwort von der Datenbank ist relativ lang (ca. 10 Sekunden). Kann man irgendwie den Befehl umstellen, dass die Performance gesteigert wird und die Antwortzeit bei ca. 1 Sekunde liegt?

    Vielenm Dank für eure Unterstützung

    Brogi

  • #2
    Gibt es auf der Spalte Col2 einen Index?

    kuemmelchen

    Comment


    • #3
      Ja, Index ist gesetzt.

      Comment


      • #4
        Bin kein Datenkbankspezialist, aber evtl. könnte das schneller sein:

        [highlight=sql]
        with conditions as
        (
        SELECT 'var1' cond FROM dual
        UNION ALL
        SELECT 'var2' cond FROM dual
        UNION ALL
        ...
        )
        SELECT t1.Col1
        FROM Tabelle1 t1
        WHERE EXISTS
        (
        SELECT *
        FROM conditions c
        WHERE c.cond = t1.Col2
        )
        [/highlight]

        Einen Versuch wärs Wert

        Comment


        • #5
          Hast Du die Möglichkeit die Werte statt in die IN Klausel in eine temporären Tabelle zu laden und dann zu joinen?

          Wie sieht der Ausführungsplan aus und wieviele Datensätze werden im allgemeinen zurückgeliefert?

          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


          • #6
            Hallo, Eschuldigung, dass ich mich erst so spät melde. Ich habe das Problem auf anderem Wege gelöst. Mein DB-Administrator sagte mir, dass der SQL-Befehl nicht zu optimieren wäre. Ich gehe aktuell so vor, dass das Suchergebnis binär gespeichert wird und über eine separate Anwendung aktualisiert wird. Das entspricht dem Konzept des temporären speichern der Tabellen. Danke für eure Unterstützung.

            Comment

            Working...
            X