Zitat Zitat von Fuerchau Beitrag anzeigen
Ja das geht auch, ist allerdings performancenegativ.
Wenn ich alle Paramter mit Low/High und nur 1 auf einen bestimmten Wert kann SQL nicht über Index optimieren. Wenn ich einen Parameter mit Leer prüfe und nur den gewünschten Parameter fülle, kann SQL den passenden Index nehmen.
Und warum denn nicht?
Solange die Original-Spalte auf der linken Seite des Vergleichsoperators (BETWEEN) nicht verändert wird (z.B. durch eine Scalare Funktion) KANN der Optimizer einen regulären Binary Radix Tree Index verwenden.
Ob er es denn tut, hängt mit anderen Faktoren zusammen.

... und selbst wenn auf der linken Seite des Vergleichsoperators die Spalte verändert wird, kann der Optimizer sogar einen entsprechenden Derived Index verwenden.

Kleiner Tipp: bevor man irgendwelche Behauptungen in den Raum stellt, sollte man das Ganze doch mal ausprobieren.

Click image for larger version. 

Name:	Index-Verwendung.jpg 
Views:	7 
Size:	115,0 KB 
ID:	631