Databases Reference
In-Depth Information
RID informell als Primärschlüssel für die Datensätze eines RDBMS interpretie-
ren. Ein Zugriff auf die RID im Rahmen von SQL-Anweisungen ist jedoch im All-
gemeinen nicht möglich. Diese einfache Form der Identifikation wird uns etwas
später in Abschnitt 20.7 weiterhelfen.
20.3
Caching
Da der Transport vom Arbeitsspeicher zur Festplatte extrem lange dauert, mei-
det das RDBMS den Kontakt mit der Festplatte wie der Teufel das Weihwasser.
Insbesondere werden Seiten, die das RDBMS häufig benötigt, auch lange im Ar-
beitsspeicher vorgehalten. Der Teil des Arbeitsspeichers, in dem das RDBMS die
gelesenen Seiten lagert, bezeichnen wir als Cache , in der Literatur sind - im spe-
ziellen Kontext von Datenbanksystemen - aber auch die Begriffe Buffer-Pool oder
Datenbankpuffer gängig. Die Größe ist bei den meisten RDBMS konfigurierbar.
Bei H2 können wir die Größe (KByte) mit der Anweisung
select *
from information_schema.settings
where name = 'info.cache_max_size'
feststellen und mit
set cache_size
einstellen.
Paradiesische Zustände ergeben sich - ganz ähnlich wie bei In-Memory-
Datenbanken -, wenn die Datenbank vollständig in den Cache passt. Abfragen
können, nachdem sich das System eingeschwungen und alle Seiten der Daten-
bank im Cache abgelegt sind, allein durch Zugriffe auf den Arbeitsspeicher be-
dient werden.
In vielen Fällen verhindert die Größe der Datenbank allerdings ihre vollständi-
ge Einlagerung in den Cache. Im Vergleich zu In-Memory-Datenbanken werden
unsere Daten aber persistiert. Weil der Datentransport zwischen Arbeitsspeicher
und Festplatte sehr aufwändig ist, versucht das RDBMS diese Transporte durch
eine sehr effiziente Strategie zu minimieren. Die Grundzüge dieser Strategie ler-
nen wir jetzt kennen.
Solange im Cache genügend Platz vorhanden ist, ist die Vorgehensweise klar:
Wenn das RDBMS Seiten benötigt, die sich noch nicht im Arbeitsspeicher befin-
den, bleibt dem System nichts anderes übrig, als die Seiten einzulesen. Sobald der
Cache aber voll ist, muss das System entscheiden, welcher Seite es das Bleiberecht
im Cache entzieht.
Bei dieser Verdrängung muss berücksichtigt werden, dass eine Seite geändert
worden sein kann, seitdem sie im Cache eingetroffen ist; möglicherweise wurden
Search WWH ::




Custom Search