2012-04-13 16 views
0

Was meinst du? Kann ich diese Abfrage vereinfachen und die Leistung verbessern?kann ich diese Abfrage vereinfachen?

Vielen Dank für Ihre Meinung es

+0

Versuchen und vermeiden 'Like' – Virus

+0

und stattdessen? '='? – Baper

+1

Das ist eine grundlegende Auswahl mit einigen Vanilla Joins und ein paar Bedingungen, Sie können es wirklich nicht vereinfachen, wenn das die Daten und Bedingungen sind, die Sie verwenden müssen. Die Leistung hängt davon ab, welche Indexerstellung Sie in den verknüpften und den (nicht wild markierten) Suchspalten erstellen. http://office.microsoft.com/en-us/access-help/create-and-use-an-index-to-improve-performance-HA010210347.aspx –

Antwort

1

Reformierte, und entfernen Sie alle unnötigen Klammern und es ist eigentlich ganz einfach, das lesen (Beachten Sie, wenn ich diese Antwort schrieb, die Abfrage in der Frage unformatiert war Text!)

SELECT DISTINCT 
    tb_Bauteile.ID, tb_Bauteile.Name, tb_Bauteile.Blatt_nr, 
    FehlerCodes_akt_Liste.Fehlerpfad, FehlerCodes_akt_Liste.Pfad_Bezeichnung, 
    FehlerCodes_akt_Liste.Steuergerät, FehlerCodes_akt_Liste.Kommentar 
FROM 
     tb_Pinnummern INNER JOIN 
     tb_Bauteile 
     ON tb_Pinnummern.Bauteil = tb_Bauteile.ID INNER JOIN 
      tb_Fahrzeug 
      ON tb_Pinnummern.SG = tb_Fahrzeug.Motor_SG INNER JOIN 
       FehlerCodes_akt_Liste 
       ON tb_Bauteile.CDT = FehlerCodes_akt_Liste.CDT 
WHERE tb_Bauteile.Blatt_nr Like "5*" 
AND tb_Fahrzeug.ID = [forms]![frm_fahrzeug]![id] 
ORDER BY FehlerCodes_akt_Liste.Fehlerpfad; 

Sie können auch Aliasnamen für Ihre Tabellennamen eingeben, um diese einfacher zu machen, z

SELECT DISTINCT b.ID, b.Name 
FROM tb_Bauteile AS b 
WHERE b.Blatt_nr LIKE "5*" 

Hinzufügen von Indizes zu den verwendeten Feldern in Ihrer Join und Wo Klauseln würden in der Regel die Leistung verbessern. Beachten Sie, dass ein Index auf tb_Bauteile.Blatt_nr die Leistung hier verbessern würde, da Ihre LIKE-Klausel nur einen nachgestellten Platzhalter hat. Wenn Ihre LIKE-Klausel jedoch LIKE '*5' ist, wird die Leistung nicht verbessert.

Verwandte Themen