SQL-Filter: FROM… ON … [><=]... vs. WHERE ...[><=]...

Wir haben mal einen Versuch gestartet, welche Filtermethode die besserer Performance hat:

SELECT Tab1.ID, Tab2.Name
FROM Tab1 INNER JOIN Tab2 on Tab1.ID = Tab2.ID and Tab2.Filter=1

vs.

SELECT Tab1.ID, Tab2.Name
FROM Tab1 INNER JOIN Tab2 on Tab1.ID = Tab2.ID
WHERE Tab2.Filter=1

Die gute Nachricht: Es gibt keinen Unterschied, der Query Optimizer des MS SQL Servers erstellt einen identischen Ablaufplan.

Allerdings würden wir für die zweite Variante plädieren, da der Code (speziell wenn er mal länger wird) meist deutlich besser lesbar ist. Außerdem wandelt der SQL-Server im View-Designer gern mal von Variante 1 automatisch in Variante 2 um – es scheint also auch M$ besser zu gefallen 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Captcha * Time limit is exhausted. Please reload CAPTCHA.