Hallo,
mich irritiert, das je nach dem wie ich die reihenfolge der WHERE-bedingungen gestalte, die abfragezeit ganz stark schwankt: wenn ich z.b. t1.inhalt != "C" als erste WHERE-bedingung nehme, ist die abfragedauer viel länger als oben im vorschlag.
Drei mögliche Ursachen:
1.) Joins werden nur für Treffer der Haupttabelle aufgelöst. Sind diese eingeschränkt (t1.inhalt = "A"), so entfällt für die restlichen Datensätze Arbeit für die Datenbank. Wahrscheinlich ist t1 deine 'treibende Tabelle'.
2.) Gleichheitbedingungen (wie z.B. t1.inhalt = "A") schränken das Ergebnis viel stärker ein als Ungleichheitsbedingungen (t3.inhalt != "C").
3.) Durch die UND-VErknüfungen der Bedingungen enfallen weitere Prüfungen, wenn die erste schon nicht mehr WAHR ergibt.
Ich denke der Performance-Unterschied ergibt sich durch ein Zusammenspiel aller drei Faktoren.
Genaueres findest Du sicherlich in der Dokumentation von Deinem DBMS.
Andere Datenbankenkönnten allerdings anders arbeiten, da eventuell die treibende Tabelle anders ermittelt wird, oder aber auch die Bedingungen anders abgearbeitet werden. Bei einem Wechsel des DBMS würde eventuell eine Neuformulierung der Statements notwendig sein.
Grüße
Klaus