DB2 Universal Database - Systemverwaltung


Erstellen eines Tabellenbereichs

Durch das Erstellen eines Tabellenbereichs innerhalb einer Datenbank werden dem Tabellenbereich Behälter zugeordnet und die zugehörigen Definitionen und Attribute im Datenbanksystemkatalog gespeichert. Anschließend können Sie Tabellen in diesem Tabellenbereich erstellen.

Informationen zum Entwurf von Tabellenbereichen finden Sie in Entwerfen und Auswählen von Tabellenbereichen.

Eine detaillierte Beschreibung der Syntax der Anweisung CREATE TABLESPACE finden Sie im Handbuch SQL Reference. Informationen zu SMS- und DMS-Tabellenbereichen enthält der Abschnitt Entwerfen und Auswählen von Tabellenbereichen.

Gehen Sie wie folgt vor, um mit der Steuerzentrale einen Tabellenbereich zu erstellen:

  1. Erweitern Sie die Sicht der Objektbaumstruktur so lange, bis der Ordner Tabellenbereiche angezeigt wird.
  2. Klicken Sie mit der rechten Maustaste auf dem Ordner Tabellenbereiche und wählen Sie dann im Kontextmenü Erstellen --> Tabellenbereich mit Assistent aus.
  3. Führen Sie die im Assistenten aufgeführten Schritte aus, um die Task abzuschließen.

Geben Sie in der Befehlszeile folgendes ein, um einen SMS-Tabellenbereich zu erstellen:

   CREATE TABLESPACE <NAME>
      MANAGED BY SYSTEM
      USING ('<pfad>')

Geben Sie in der Befehlszeile folgendes ein, um einen SMS-Tabellenbereich zu erstellen:

   CREATE TABLESPACE <NAME>
      MANAGED BY DATABASE
      USING (FILE'<pfad>' <größe>)

Mit der folgenden SQL-Anweisung wird ein SMS-Tabellenbereich unter OS/2 oder Windows NT mit drei Verzeichnissen auf drei separaten Laufwerken erstellt:

      CREATE TABLESPACE RESOURCE
      MANAGED BY SYSTEM
      USING ('d:\acc_tbsp', 'e:\acc_tbsp', 'f:\acc_tbsp')

Mit der folgenden SQL-Anweisung wird ein DMS-Tabellenbereich unter OS/2 mit zwei Dateibehältern von je 5000 Seiten erstellt:

      CREATE TABLESPACE RESOURCE
      MANAGED BY DATABASE
      USING (FILE'd:\db2data\acc_tbsp' 5000,
             FILE'e:\db2data\acc_tbsp' 5000)

In den beiden gezeigten Beispielen werden explizit Namen für die Behälter angegeben. Wenn Sie jedoch relative Behälternamen angeben, wird der Behälter in dem für die Datenbank angelegten Unterverzeichnis erstellt (siehe Datenbankverzeichnisse).

Wenn ein Teil des angegebenen Pfadnamens nicht existiert, wird er vom Datenbankmanager erstellt. Wird vom Datenbankmanager ein Unterverzeichnis erstellt, kann es auch wieder vom Datenbankmanager gelöscht werden, wenn der Tabellenbereich gelöscht wird.

In den obigen Beispielen wird davon ausgegangen, daß die Tabellenbereiche nicht einer bestimmten Knotengruppe zugeordnet werden. Die Standardknotengruppe IBMDEFAULTGROUP wird verwendet, wenn der folgende Parameter in der Anweisung nicht angegeben wird:

      IN knotengruppe

Mit der folgenden SQL-Anweisung werden ein DMS-Tabellenbereich auf einem auf UNIX basierenden System mit drei logischen Datenträgern von je 10.000 Seiten erstellt und die zugehörigen E/A-Merkmale angegeben:

      CREATE TABLESPACE RESOURCE
      MANAGED BY DATABASE
      USING (DEVICE '/dev/rdblv6' 10000,
             DEVICE '/dev/rdblv7' 10000,
             DEVICE'/dev/rdblv8' 10000)
      OVERHEAD 24.1
      TRANSFERRATE 0.9

Die in der SQL-Anweisung angegebenen UNIX-Einheiten müssen bereits vorhanden sein, und der Exemplareigner und die SYSADM-Gruppe müssen Schreibzugriff auf sie haben.

Im folgenden Beispiel wird ein DMS-Tabellenbereich in einer Knotengruppe namens ODDNODEGROUP in einer partitionierten UNIX-Datenbank erstellt. Die Knotengruppe ODDNODEGROUP muß zuvor mit der Anweisung CREATE NODEGROUP erstellt worden sein. Im vorliegenden Beispiel wird angenommen, daß die Knotengruppe ODDNODEGROUP aus den Datenbankpartitionen 1, 3 und 5 besteht. In allen Datenbankpartitionen ist die Einheit (Device) /dev/hdisk0 für 10.000 4-KB-Seiten zu verwenden. Außerdem wird für jede Datenbankpartition eine Einheit von 40.000 4-KB-Seiten deklariert.

      CREATE TABLESPACE PLANS
      MANAGED BY DATABASE
      USING (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n1hd01' 40000) ON NODE 1
            (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n3hd03' 40000) ON NODE 3
            (DEVICE '/dev/HDISK0' 10000, DEVICE '/dev/n5hd05' 40000) ON NODE 5

UNIX-Einheiten werden in zwei Kategorien eingeteilt: zeichenorientierte serielle Einheiten und blockorientierte Einheiten. Bei allen Dateisystemeinheiten ist normalerweise für jede blockorientierte Einheit (Cooked Device) eine entsprechende serielle zeichenorientierte Einheit (Raw Device) vorhanden. Blockorientierte Einheiten werden häufig mit Namen wie "hd0", "fd0" oder ähnlich bezeichnet. Zeichenorientierte serielle Einheiten erhalten typischerweise Namen wie "rhd0", "rfd0", "rmt0" o. ä. Zeichenorientierte serielle Einheiten haben einen schnelleren Zugriff als blockorientierte Einheiten. Im Befehl CREATE TABLESPACE sind die Namen der zeichenorientierten seriellen Einheiten zu verwenden, und nicht die Namen der blockorientierten Einheiten.

Die Parameter OVERHEAD und TRANSFERRATE helfen bei der Feststellung des besten Zugriffspfads, der zu verwenden ist, wenn die SQL-Anweisung kompiliert wird. Informationen zu den Parametern OVERHEAD und TRANSFERRATE finden Sie in Kapitel 22, Überlegungen zu Anwendungen.

DB2 kann die Leistung sequentieller E/A-Operationen durch die Verwendung des sequentiellen Vorablesezugriffs (Sequential Prefetching) wesentlich verbessern, da durch sie parallele E/A-Operationen durchgeführt werden. Detaillierte Informationen zu dieser Funktion finden Sie in Sequentieller Vorablesezugriff.

Sie können auch einen Tabellenbereich erstellen, der den Standardwert von 4 KB für die Seitengröße übersteigt. Durch die folgende SQL-Anweisung wird ein SMS-Tabellenbereich auf einem UNIX-gestützten System mit einer Seitengröße von 8 KB erstellt.

   CREATE TABLESPACE SMS8K
      PAGESIZE 8192
      MANAGED BY SYSTEM
      USING ('FSMS_8K_1')
      BUFFERPOOL BUFFPOOL8K

Beachten Sie, daß der zugeordnete Pufferpool ebenfalls die Seitengröße von 8 KB aufweisen muß.

Der erstellte Tabellenbereich kann nicht verwendet werden, bis der Pufferpool, auf den er verweist, aktiviert ist.

Die SQL-Anweisung ALTER TABLESPACE kann dazu verwendet werden, einen Behälter einem DMS-Tabellenbereich hinzuzufügen und die Einstellungen für die Parameter PREFETCHSIZE, OVERHEAD und TRANSFERRATE für einen Tabellenbereich zu ändern. Die Transaktion, die die Anweisung für den Tabellenbereich absetzt, sollte so bald wie möglich festgeschrieben werden, um Konkurrenzsituationen im Systemkatalog zu vermeiden.
Anmerkung:Für den Wert für PREFETCHSIZE sollte ein Vielfaches des Werts für EXTENTSIZE verwendet werden. Wenn beispielsweise für EXTENTSIZE der Wert 10 angegeben wird, sollte der Wert für PREFETCHSIZE 20 oder 30 sein. Weitere Informationen hierzu finden Sie in Sequentieller Vorablesezugriff.

Erstellen eines temporären Systemtabellenbereichs

Ein temporärer Systemtabellenbereich wird zum Speichern temporärer Systemtabellen verwendet. Beim Erstellen einer Datenbank wird einer der drei standardmäßig definierten Tabellenbereiche als temporärer Systemtabellenbereich konfiguriert und erhält den Namen "TEMPSPACE1".
Anmerkung:Eine Datenbank muß immer über mindestens einen temporären Systemtabellenbereich verfügen, da temporäre Systemtabellen nur in solch einem Tabellenbereich gespeichert werden können.

Mit der Anweisung CREATE TABLESPACE können Sie einen weiteren temporären Systemtabellenbereich erstellen. Beispiel:

   CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp
      MANAGED BY SYSTEM
      USING ('d:\tmp_tbsp','e:\tmp_tbsp')

Die einzige Knotengruppe, die beim Erstellen eines temporären Systemtabellenbereichs angegeben werden kann, ist IBMTEMPGROUP.

Erstellen eines temporären Benutzertabellenbereichs

Ein temporärer Benutzertabellenbereich wird zum Speichern deklarierter, temporärer Tabellen verwendet.

Mit der Anweisung CREATE TABLESPACE können Sie einen temporären Benutzertabellenbereich erstellen:

   CREATE USER TEMPORARY TABLESPACE usr_tbsp
      MANAGED BY DATABASE
      USING (FILE 'd:\db2data\user_tbsp' 5000,
             FILE 'e:\db2data\user_tbsp' 5000)

Wie bei regulären Tabellenbereichen können temporäre Benutzertabellenbereiche in allen Knotengruppen mit Ausnahme von IBMTEMPGROUP erstellt werden. Standardmäßig wird beim Erstellen eines temporären Benutzertabellenbereichs die Knotengruppe IBMDEFAULTGROUP verwendet.

Mit der Anweisung DECLARE GLOBAL TEMPORARY TABLE werden deklarierte, temporäre Tabellen für den Einsatz in einem temporären Benutzertabellenbereich definiert.

Erstellen von Tabellenbereichen in Knotengruppen

Wenn ein Tabellenbereich in einer Knotengruppe mit mehreren Datenbankpartitionen erstellt wird, werden alle Tabellen innerhalb des Tabellenbereichs auf alle Datenbankpartitionen in der Knotengruppe verteilt oder partitioniert. Der Tabellenbereich wird in einer Knotengruppe erstellt. Wenn der Tabellenbereich in einer Knotengruppe erstellt wurde, muß er dort verbleiben und kann nicht in eine andere Knotengruppe versetzt werden. Für die Zuordnung eines Tabellenbereichs zu einer Knotengruppe wird die Anweisung CREATE TABLESPACE verwendet.

Direkter Plattenzugriff (Raw I/O)

DB2 Universal Database unterstützt den direkten Plattenzugriff (Raw I/O). Dadurch haben Sie die Möglichkeit, eine Einheit (Gerät) mit direktem Plattenzugriff (Raw) an ein DB2 Universal Database-System anzuschließen. (Als einzige Ausnahmen sind hierbei die Betriebssysteme Linux, Windows 95 und Windows 98 aufzuführen.) Die folgende Liste zeigt die physischen und logischen Verfahren, eine solche Einheit zu identifizieren:


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]