Home

Tabellenscan

Tabellenscan bezeichnet in relationalen Datenbanksystemen den Zugriff, bei dem die gesamte Tabelle sequenziell gelesen wird, um eine Abfrage zu erfüllen. Im Englischen wird dieser Vorgang oft als table scan oder Seq Scan bezeichnet. Dabei werden alle Tabellenzeilen durchlaufen, unabhängig davon, ob sie das Abfragekriterium erfüllen oder nicht.

Der Tabellenscan tritt auf, wenn kein nutzbarer Index vorhanden ist oder der Abfrageoptimizer einen vollständigen Scan

Die Kosten eines Tabellenscans sind vor allem I/O-gebunden: Das System muss viele Datenseiten lesen, was durch

Optimierungsmöglichkeiten umfassen das Anlegen sinnvoller Indizes, Partitionierung der Tabellen, den Einsatz von materialisierten Ansichten oder den

bevorzugt,
etwa
weil
viele
oder
alle
Zeilen
der
Tabelle
benötigt
werden
oder
weil
die
Abfrage
mehrere
Spalten
umfasst
und
ein
aufwändiger
Index-Lookup
unwirtschaftlich
wäre.
In
solchen
Fällen
kann
der
Scanner
auch
dann
eingesetzt
werden,
wenn
Daten
bereits
vorhanden
sind,
aber
der
Aufwand
eines
gezielten
Indexzugriffs
insgesamt
geringer
wäre.
Speichercache,
Puffern
und
parallele
Ausführung
beeinflusst
wird.
Gegenüber
hoch
selektiven
Abfragen
kann
ein
Tabellenscan
langsamer
sein,
während
er
bei
Abfragen
mit
großen
Ergebnismengen
oder
dem
Abruf
aller
Spalten
oft
effizienter
ausfällt.
Die
tatsächliche
Wahl
hängt
vom
Abfrageplan,
der
Tabellengröße,
der
Verteilung
der
Daten
und
der
verfügbaren
Hardware
ab.
Einsatz
alternativer
Speichermodelle.
Gleichwohl
können
Tabellenscans
in
analytischen
Workloads
oder
bei
schlecht
selectiven
Abfragen
weiterhin
eine
notwendige
und
effiziente
Zugriffsform
darstellen.