capypad
0 Tage Serie
sql / expert
Snippet

SARGable Prädikate zur Indexoptimierung

Experten-Performance-Tuning erfordert 'Search Argumentable' (SARGable) Abfragen. Anstatt Funktionen wie YEAR(order_date) zu verwenden, die die Indexnutzung verhindern, nutzen wir einen Bereichsvergleich. Dies ermöglicht der Datenbank-Engine einen Index-Seek anstelle eines vollständigen Tabellenscans.

snippet.sql
sql
1
2
3
4
5
SELECT order_id, customer_id
FROM orders
WHERE order_date >= '2023-01-01'
AND order_date < '2024-01-01'
AND status = 'COMPLETED';
Erklärung
1
WHERE order_date >= '2023-01-01'
Liefert eine Untergrenze, die der Query-Optimizer für den Index-Durchlauf nutzen kann.
2
AND order_date < '2024-01-01'
Liefert eine Obergrenze, ohne die Spalte in eine Funktion einzuschließen, wodurch die SARGability erhalten bleibt.