Registriert seit: 6. Sep 2006
106 Beiträge
Delphi 10.3 Rio
|
AW: Prozedur (SQL-Statement) optimieren
21. Feb 2011, 11:34
In der where-Bedingung zuerst die Abfrage mit der kleinsten Ergebnismenge aus der Haupttabelle. Da in deinem Fall nur eine where-Bedingung auf die Haupttabelle geht, diese also zuerst abfragen. Dadurch werden nur noch Unterabfragen zu den resultierenden Datensätzen durchgeführt. Bei deiner Reihenfolge der where-Bedingung werden praktisch alle Datensätze der Haupttabelle angefasst um zu prüfen ob in Tabelle translations ein gesuchter Eintrag existiert.
workQuery.SQL.Add('where ass.id=:id and trans.language_id=:lng');
Die Felder ass.id, art.id und trans.article_id sollten zusätzlich noch indiziert sein.
|