TAKTUM Logo


Oracle Schulung
Oracle Schulung

Oracle Tuning und Optimierung Tutorial: Datencache (DB_BLOCK_BUFFERS)
Beschreibung des Oracle Datenbank cache

Prinzip

Der Oracle Datenbank Cache ist ein Schreib-Lese-Cache für die Nutzdaten. Er hat die gleiche Blockstruktur wie die Datendateien. Die Trefferquote des Cache hat eine große Aussagekraft. Schlechte Trefferquoten (kleiner 95%) bedeuten immer Performanceprobleme aufgrund von IO-Operationen. Die Größe des Cache wird durch den Initialisierungsparameter DB_BLOCK_BUFFERS in Anzahl Blöcken angegeben. Die Gesamtgröße ergibt sich durch DB_BLOCK_BUFFERS * DB_BLOCK_SIZE. Die Blockgröße wird beim Anlegen der Datenbank festgelegt und kann nachträglich nicht mehr verändert werden. DB_BLOCK_BUFFERS wird beim Start der Datenbank-Instanz gelesen.

Cache-Größe

Die sinnvolle Größe für den Datencache ist vom Einzelfall abhängig. Mehrere Hundert Megabyte bei einem Produktivsystem von einigen Gigabyte Nutzdaten sind durchaus empfehlenswert.

Trefferquote

set serveroutput on

declare dbg number;

cg number;
pr number

begin

select value into dbg
from v$sysstat
where name = 'db block gets';

select value into cg
from v$sysstat
where name = 'consistent gets';

select value into pr
from v$sysstat
where name = 'physical reads';

dbms_output.put_line('db block gets '||to_char(dbg,'999G999G999'));

dbms_output.put_line('consistent gets '||to_char(cg,'999G999G999'));

dbms_output.put_line('physical reads '||to_char(pr,'999G999G999'));

dbms_output.put_line('------------------------------');

dbms_output.put_line(
'hit Rate in % '||
to_char (round(100*(1-(pr/(dbg+cg))),2),'999D00'));

end;



Stichwörter

Datenbank database Cache datencache DB_BLOCK_FUFFERS Trefferquote cache miss hit