Announcement

Collapse
No announcement yet.

SQL Abfrage beschleunigen

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

  • SQL Abfrage beschleunigen

    Hallo,
    ich habe hier folgende Abfrage (MySQL Datenbank):


    Code:
    SELECT * FROM tblbestellungen_ek
    LEFT JOIN tblbestellung_ek_liefdaten ON tblbestellungen_ek.idBestellungEK = tblbestellung_ek_liefdaten.FK_bestellungsEKId
    GROUP BY tblbestellungen_ek.bestellNummer
    ORDER BY tblbestellungen_ek.bestellDatum DESC
    Die Abfrage dauert über 20 Sekunden.
    In der Tabelle tblbestellungen_ek sind 2.600 sind Einträge (12 Spalten)
    In der Tabelle tblbestellung_ek_liefdaten 6.700 sind Einträge (9 Spalten)

    Woran kann es liegen, dass es so lange dauert. Sind ja nun wirklich keine großen Datenmengen.
    Und wie könnte ich die Abfrage beschleunigen?

    Über 20 Sekunden sind nicht akzeptabel ... :-(
    Zuletzt editiert von Christian Marquardt; 09.01.2020, 07:15. Reason: highlicht entfernt

  • #2
    Schon einen Index(id) auf den Tabellen gesetzt?
    Soll wirklich ein select * erfolgen oder sind doch Spalten gefragt?

    An der Abfrage wirst du wenig ändern können.
    Läuft diese lokal oder geht die Anfrage übers Internet?
    Welche DB-Engine (Inno)?
    Christian

    Comment


    • #3
      Aus Deiner Frage geht nicht hervor, wie gut Du das System kennst oder wie das Modell vollständig aussieht.
      Da sind der Fantasie wenig grenzen gesetzt.

      Also:
      0. Indizierung wurde schon angesprochen
      1. 20 Sekunden ist für so wenig Daten ungewöhnlich (auch für eine Schmalspurinstallation im Web o.ä.)
      2. erster Verdacht: falscher / unvollständiger Join (mindestens ein Join -Kriterium vergessen)
      3. aus 2. folgt eine mglw sehr große Zahl an Permutationen (hängt von der Selektivität der angewendeten Join Kriterien ab)
      4. aus 3. folgt der Gedanke, dass dies eigentlich auffallen müsste
      5. Ein Group By macht die Auffälligkeit allerdings wieder zunichte und als Spur bliebe nur die Laufzeit
      6. mit oder ohne 2. bis 5. kann ein Group By unter mysql sehr langsam sein, wenn ungünstige Character Sets verwendet werden ( bei Textfelder Gruppierung)
      7. Select * und Group By ist mit ziemlich großer Wahrscheinlichkeit wiedersinnig und würde in anderen System wahrscheinlich einen Fehler hervorrufen.
      Gruß, defo

      Comment

      Working...
      X