TAKTUM Logo


Oracle Schulung
Oracle Schulung

Oracle Speicherverwaltung Tutorial: Speicher-Begriffe und deren Zusammenhang
Tablespace, Datei, Segment, Extent und Block

Bei der Oracle Speicherverwaltung sind zwei Ebenen zu unterscheiden: Die logische Ebene und die physische Ebene. Die logische Ebene beschäftigt sich mit den Objekten, die üblicherweise mit SQL behandelt werden: Tabellen, Indizes u.s.w. Diese Objekte werden in den physischen Strukturen abgelegt. Die Begriffe der physischen Datenstrukturen sind:

  • Tablespace
  • Datendatei (data file)
  • Segment
  • Extent
  • Block

Weitere Speicherstrukturen wie die control files und redo-log-files dienen nicht der Ablage der Nutzdaten, sondern ausschließlich der Verwaltung.

Die obigen Begriffe bilden eine hierarchische Ordnung:

  • eine Datenbank besteht aus mehreren Tablespaces
  • ein Tablespace besteht aus einer oder mehreren Datendateien
  • in einer Datendatei sind i.a. mehrere extents
  • ein extent besteht aus mehreren Blöcken

Ein logisches Objekt wie eine Tabelle belegt in der physischen Struktur ein Speicher-Segment. Ein Speichersegment besteht aus einem oder mehreren extents, die wiederum in einer Datei oder in mehreren Dateien verteilt liegen können. Die folgende Grafik verdeutlicht die Zusammenhänge der Begriffe:

Tablespace (gestrichelter Bereich)

Datenbankdateien

(Physikalische Strukturen, die zu einem Tablespace gehören)

Objekte (Segmente)

(In Tablespaces gespeichert - können in mehreren Datendateien enthalten sein)

  • Segmente werden logisch in einem Tablespace und physikalisch in Dateien gespeichert
  • Angabe der Speichergröße beim Anlegen des Objektes (Erster Extent und folgende Extentgrößen)
  • Default Werte werden vom jeweiligen Tablespace entnommen

Konfiguration

Für jedes Objekt wird beim Anlegen entsschieden, in welchem Tablespace es liegen soll. Zusätzlich werden über die sogenannten Storage-Parameter die Größen und die Anzahl der Extents festgelegt.

Beispiel:

create table test
(
a number (8),
s varchar2 (1000)
)
tablespace USERS
storage
( initial 1M
next 100K
minextents 1
maxextents 100
pctincrease 50
);

Erläuterung:

  • die Tabelle test wird im Tablespace USERS angelegt
  • initial und minextents: beim Anlegen der Tabelle wird ein Extent der Größe 1 Megabyte angelegt (welche Datei des Tablespaces entscheidet Oracle)
  • next: wenn der Speicherplatz des ersten Extents verbraucht ist, wird automatisch ein weiteres Extent der Größe 100 Kilobyte angelegt
  • maxextents: es werden maximal 100 Extents angelegt
  • pctincrease: die Größe der automatisch angelegten Extents wächst um 50%, d.h. 1. Extent: 1M, 2. Extent: 100K, 3. Extent: 150K, 4. Extent: 225K ...

Default-Einstellungen

  • Das benötigte Segment wird in dem Tablespace angelegt, daß dem Benutzer als Default-Tablespace zugeordnet ist
  • Default Speicherparameter werden vom Tablespace übernommen

Hinweise

Separate(r) Tablespace(s) für jede Applikation sinnvoll. Beispiel: USERS, INDEX, PT_DATA, PT_INDEX

Speicherplatz im Tablespace wird beim Löschen der Segmente (DROP) oder aller Daten (TRUNCATE) freigegeben:

drop table < table_name>; -- Alles löschen

truncate table < table_name>; -- Nur die Daten löschen, das initial-extent bleibt leer erhalten



Stichwörter

Tablespace Extent Segment Block Tablespaces Extents Segmente Blöcke blocks Segments Datei Datendatei Speicherverwaltung Speicherplatz Speicher Datei Dateien File Files Tablespace Tablespaces Administration