2012-04-13 7 views
0

どういう意味ですか?このクエリを簡単にしてパフォーマンスを向上させることはできますか? このクエリを簡単にすることはできますか?

+0

「Like」 – Virus

+0

の代わりに試してみてください。 '='? – Baper

+1

基本的な選択肢がいくつかのバニラジョイントといくつかの条件であり、使用する必要があるデータと条件の場合は、それを単純化できません。そのパフォーマンスは、結合された(およびワイルドカードではない)検索列で作成するインデックスの影響を受けます。 http://office.microsoft.com/en-us/access-help/create-and-use-an-index-to-improve-performance-HA010210347.aspx –

答えて

1

再フォーマット、それをあなたのご意見をありがとうございました、そして、すべての不要な括弧を削除し、それが(私はこの答えを書いたとき、問題のクエリが未フォーマットであることに注意してください読むために実際には非常に簡単ですテキスト!)

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; 

テーブル名をエイリアスにすると、より単純なものにすることもできます。

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

通常、Join句およびWhere句で使用されるフィールドにインデックスを追加すると、パフォーマンスが向上します。 tb_Bauteile.Blatt_nrのインデックスは、LIKE句に後続のワイルドカードしかないため、ここではパフォーマンスが向上することに注意してください。ただし、LIKE句がLIKE '*5'の場合、パフォーマンスは向上しませんでした。

関連する問題