Eine Bereichsabfrage (engl.: range query) ist eine übliche Datenbankabfrage, welche alle Datensätze (Zeilen in Datenbanktabelle einer Relationale Datenbank) auffindet, bei denen ein bestimmtes Attribut innerhalb eines vorgegebenen Intervalls liegt. Bereichsabfragen sind ungewöhnlich, da nicht vorab bekannt ist, ob und wie viele Einträge zurückgeliefert werden. Viele andere Abfragen, etwa nach den zehn ältesten Mitarbeitern oder dem neusten Mitarbeiter einer Firma, können effizienter ausgeführt werden, da die Anzahl von zurückgelieferten Einträgen nach oben beschränkt ist.
Beispiele
- Alle Mitarbeiter, die mehr als zehn Jahre Berufserfahrung haben.
- Alle Produkte, deren Preis zwischen 10 und 100 Euro liegt.
Optimierung
Mit einem Datenbankindex auf dem entsprechenden Attribut können die gesuchten Datensätze bestimmt werden, ohne eine sequentielle Suche (Scan) auf der gesamten Tabelle durchzuführen. Ein Clustering der Tabelle bezüglich des entsprechenden Attributs im Massenspeicher ermöglicht zudem, dass nur die Adressen der beiden Datensätze ermittelt werden müssen, welche die Intervallgrenzen darstellen (über Datenbankindex), und dann alle relevanten Datensätze sequentiell gelesen werden können. Durch Clustering wird die Zugriffszeit einer Festplatte verringert, bei SSDs spielt es kaum eine Rolle. Beide Optimierungen werden durch einen Clustered Index erfüllt.