Announcement

Collapse
No announcement yet.

SQL Abfrage optimieren

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

  • SQL Abfrage optimieren

    Hi zusammen,

    ich habe 3 Tabellen

    1. Tabelle

    Spalten: ID, Deutsch, Beschreibung, Module

    2. Tabelle

    Spalten: ID, LNG_ID, Name

    3. Tabelle

    Spalten: ID, LNG_ID, Name

    In der 1. Tabelle befinden sich momentan ca. 2400 Zeilen. In den Tabellen 2 und 3 jeweils nur wenige 200 und 10. Die Tabellen 2 und 3 sind über die LNG_ID mit der ID der 1. Tabelle verknüpft.

    Ich mache momentan folgende Abfrage, um alle Daten zu erhalten:

    SELECT A.*, B.Name as Englisch, C.Name as France FROM Table_1 A FULL OUTER JOIN Table_2 B ON A.ID = B.Lng_ID FULL OUTER JOIN Table_3 C ON A.ID =C.Lng_ID ORDER BY A.ID ASC

    Die Abfrage dauert 18 Sekunden! Das ist viel zu langsam meiner Meinung nach. Verwende ich z.B. nur Table_2 (also nur ein outer join), so dauert die Abfrage 1 Sekunde.

    Ich denke, das mein SQL Statement falsch ist. Kann mir jmd. einen Tipp geben, wie ich díes optimieren kann?

    Danke!

    P.S. Es handelt sich um eine Firebird 2.0 Datenbank
    Zuletzt editiert von HawkMG; 11.05.2009, 12:47. Reason: DBMS hinzugefügt

  • #2
    Sind denn Indexe auf den Tabellen vorhanden?

    Comment


    • #3
      Hi,

      ja, allerdings nur auf der Spalte ID der Tabelle 1 und den LNG_ID der Tabelle 2 und 3

      Comment


      • #4
        Hallo,
        Originally posted by HawkMG View Post
        ...Ich denke, das mein SQL Statement falsch ist. Kann mir jmd. einen Tipp geben, wie ich díes optimieren kann?
        Zuallerstmal ist dein DB-Modell falsch! Für jede Sprache eine Tabelle zu verwenden ist Murks - vergiss das ganz schnell. Was machst du wenn du neben Englisch und Französisch noch 20 andere Sprachen hast? Einen 22fachen Join?
        Bring dein Datenmodell in Ordnung und dann denk über Optimierung einer Query nach.

        Gruß Falk
        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


        • #5
          Hi,
          ja, das habe ich schon befürchtet! Dann doch alle Sprachen in eine Tabelle! Ist zwar ein wenig fleißarbeit den Code drum herum entsprechend anzupassen! Aber vermutlich besser!

          Danke!

          Comment

          Working...
          X