DB2 - Tablespaces

In diesem Kapitel werden die Tablespaces ausführlich beschrieben

Einführung

Ein Tabellenbereich ist eine Speicherstruktur, die Tabellen, Indizes, große Objekte und lange Daten enthält. Es kann verwendet werden, um Daten in einer Datenbank in einer logischen Speichergruppe zu organisieren, die sich darauf bezieht, wo Daten auf einem System gespeichert sind. Diese Tablespaces werden in Datenbankpartitionsgruppen gespeichert

Vorteile von Tablespaces in der Datenbank

Die Tabellenbereiche sind in der Datenbank auf verschiedene Weise von Vorteil:

Recoverability: Tablespaces erleichtern das Sichern und Wiederherstellen. Mit einem einzigen Befehl können Sie alle Datenbankobjekte in Tablespaces sichern oder wiederherstellen.

Automatic storage Management: Der Datenbankmanager erstellt und erweitert Container je nach Bedarf.

Memory utilization: Ein einzelner Pufferpool kann mehrere Tablespaces verwalten. Sie können ihrem eigenen Pufferpool temporäre Tablespaces zuweisen, um die Leistung von Aktivitäten wie Sortieren oder Verknüpfungen zu steigern.

Container

Tablespaces enthält einen oder mehrere Container. Ein Container kann ein Verzeichnisname, ein Gerätename oder ein Dateiname sein. In einer Datenbank kann ein einzelner Tabellenbereich mehrere Container auf demselben physischen Speichergerät haben. Wenn der Tabellenbereich mit der Option "Automatischer Speichertabellenbereich" erstellt wird, wird die Erstellung und Verwaltung von Containern automatisch vom Datenbankmanager übernommen. Wenn es nicht mit der Option für den automatischen Speichertabellenbereich erstellt wurde, müssen Sie die Container selbst definieren und verwalten.

Standardtabellenbereiche

Wenn Sie eine neue Datenbank erstellen, erstellt der Datenbankmanager einige Standardtabellenbereiche für die Datenbank. Dieser Tabellenbereich wird als Speicher für Benutzer- und temporäre Daten verwendet. Jede Datenbank muss mindestens drei hier angegebene Tablespaces enthalten:

  1. Katalogtabellenbereich
  2. Benutzertabellenbereich
  3. Temporärer Tablespace

Catalog tablespace: Es enthält Systemkatalogtabellen für die Datenbank. Es heißt SYSCATSPACE und kann nicht gelöscht werden.

User tablespace: Dieser Tabellenbereich enthält benutzerdefinierte Tabellen. In einer Datenbank haben wir einen Standardbenutzertabellenbereich mit dem Namen USERSPACE1. Wenn Sie zum Zeitpunkt der Erstellung keinen benutzerdefinierten Tabellenbereich für eine Tabelle angeben, wählt der Datenbankmanager den Standardbenutzertabellenbereich für Sie aus.

Temporary tablespace: Ein temporärer Tabellenbereich enthält temporäre Tabellendaten. Dieser Tabellenbereich enthält temporäre Systemtabellenbereiche oder temporäre Benutzertabellenbereiche.

Der temporäre Systemtabellenbereich enthält temporäre Daten, die vom Datenbankmanager benötigt werden, während Vorgänge wie Sortieren oder Verknüpfungen ausgeführt werden. Eine Datenbank muss mindestens einen temporären Systemtabellenbereich haben und heißt TEMPSPACE1. Es wird zum Zeitpunkt der Erstellung der Datenbank erstellt. Der temporäre Tabellenbereich des Benutzers enthält temporäre Daten aus Tabellen. Es wird mit der Anweisung DECLARE GLOBAL TEMPORARY TABLE oder CREATE GLOBAL TEMPORARY TABLE erstellt. Dieser temporäre Tabellenbereich wird zum Zeitpunkt der Datenbankerstellung nicht standardmäßig erstellt.

Tablespaces and storage management:

Tablespaces können auf unterschiedliche Weise eingerichtet werden, je nachdem, wie Sie sie verwenden möchten. Sie können das Betriebssystem so einrichten, dass die Zuweisung von Tabellenbereichen verwaltet wird. Sie können den Datenbankmanager Speicherplatz zuweisen lassen oder die automatische Zuweisung von Tabellenbereichen für Ihre Daten auswählen.

Die folgenden drei Arten von verwalteten Bereichen sind verfügbar:

System Managed Space (SMS): Der Dateisystem-Manager des Betriebssystems weist den Speicherplatz zu und verwaltet ihn, in dem die Tabelle gespeichert ist. Speicherplatz wird bei Bedarf zugewiesen. Dieses Modell besteht aus Dateien, die Datenbankobjekte darstellen. Dieser Tabellenbereichstyp ist in Version 10.1 für benutzerdefinierte Tabellenbereiche veraltet und für Katalog- und temporäre Tabellenbereiche nicht veraltet.

Database Managed Space (DMS): Der Datenbankserver steuert den Speicherplatz. Der Speicherplatz wird im Dateisystem basierend auf der Containerdefinition vorab zugewiesen, die Sie beim Erstellen des DMS-Tabellenbereichs angeben. Es ist ab Version 10.1 Fixpack 1 für benutzerdefinierte Tabellenbereiche veraltet, für Systemtabellenbereiche und temporäre Tabellenbereiche jedoch nicht veraltet.

Automatic Storage Tablespace: Datenbankserver kann automatisch verwaltet werden. Der Datenbankserver erstellt und erweitert Container abhängig von den Daten in der Datenbank. Bei der automatischen Speicherverwaltung müssen keine Containerdefinitionen angegeben werden. Der Datenbankserver kümmert sich um das Erstellen und Erweitern von Containern, um den der Datenbank zugewiesenen Speicher zu nutzen. Wenn Sie einer Speichergruppe Speicherplatz hinzufügen, werden automatisch neue Container erstellt, wenn der vorhandene Container seine maximale Kapazität erreicht. Wenn Sie den neu hinzugefügten Speicher sofort verwenden möchten, können Sie den Tabellenbereich neu ausgleichen.

Page, table and tablespace size:

Temporäre DMS- und automatische Speichertabellenbereiche. Die Seitengröße, die Sie für Ihre Datenbank auswählen, bestimmt die maximale Grenze für die Tabellenbereichsgröße. Bei Tabellen-SMS und temporären Tabellenbereichen für die automatische Speicherung beschränkt die Seitengröße die Größe der Tabelle selbst. Die Seitengrößen können 4 KB, 8 KB, 16 KB oder 32 KB betragen.

Tablespace-Typ 4K Seitengrößenbeschränkung 8K Seitengrößenbeschränkung 16K Seitengrößenbeschränkung Begrenzung der Seitengröße auf 32 KB
DMS, regulärer nicht temporärer automatischer Speichertabellenbereich 64G 128G 256G 512G
DMS, temporäres DMS und nicht temporärer automatischer Speichertabellenbereich groß 1892G 16384G 32768G 65536G