Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

ALTER DBSPACE-Anweisung

Verwenden Sie diese Anweisung, um Speicherplatz für einen DBSpace oder das Transaktionslog vorab zuzuweisen, oder um den Katalog zu aktualisieren, wenn eine DBSpace-Datei umbenannt oder verschoben wird.

Syntax
ALTER DBSPACE { DBSpace-Name | TRANSLOG | TEMPORARY  }
 { ADD Anzahl [Hinzufügeeinheit]
   | RENAME Dateiname }
Hinzufügeeinheit : 
PAGES 
| KB 
| MB 
| GB 
| TB
Parameter
  • TRANSLOG-Klausel   Sie geben den speziellen DBSpace-Namen TRANSLOG an, um Plattenspeicherplatz für das Transaktionslog vorab zuzuweisen. Die vorab erfolgte Zuweisung verbessert die Performance, wenn ein rasches Anwachsen des Transaktionslogs zu erwarten ist. Diese Funktion ist sinnvoll, wenn Sie beispielsweise viele BLOBs verarbeiten, wie etwa Bitmaps.

  • TEMPORARY-Klausel   Sie geben den speziellen DBSpace-Namen TEMPORARY an, um temporären DBSpaces Speicher hinzuzufügen. Wenn einem temporären DBSpace Speicher hinzugefügt wird, materialisiert sich der zusätzliche Speicher in der entsprechenden temporären Datei sofort. Die Vorzuweisung von Speicher zum temporären DBSpace einer Datenbank kann die Performance bei Abfragen mit komplexen Ausführungsprozessen, die umfangreiche Arbeitstabellen benutzen, deutlich verbessern.

  • ADD-Klausel   Eine ALTER DBSPACE-Anweisung mit der ADD-Klausel wird für die vorab erfolgte Zuweisung von Plattenspeicher für einen DBSpace verwendet. Sie erweitert die zugehörige Datenbankdatei um die angegebene Größe, und zwar in Einheiten von Seiten, Kilobyte (KByte), Megabyte (MByte), Gigabyte (GByte) oder Terabyte (TByte). Wenn Sie keine Einheit angeben, wird PAGES (Seiten) als Standard verwendet. Die Seitengröße einer Datenbank wird bei ihrer Erstellung festgelegt.Wenn der Platzbedarf nicht vorab zugewiesen wurde, werden Datenbankdateien jedes Mal um 256 KByte für die Seitengrößen 2 KByte, 4 KByte und 8 KByte erweitert, sowie um rund 32 Seiten für andere Seitengrößen, wenn Platz benötigt wird. Vorbelegen von Speicherplatz kann die Performance zum Laden großer Datenmengen verbessern und sorgt außerdem dafür, dass die Datenbankdateien im Dateisystem zusammenhängend abgelegt werden.

    Mit dieser Klausel können Sie den vordefinierten DBSpaces (SYSTEM, TEMPORARY, TEMP, TRANSLOG und TRANSLOGMIRROR) Speicherplatz zuweisen. Weitere Hinweise finden Sie unter Vordefinierte DBSpaces.

  • RENAME-Klausel   Wenn Sie nicht die Stammdatei, sondern eine andere Datenbankdatei umbenennen oder in ein anderes Verzeichnis bzw. Device verschieben, müssen Sie ALTER DBSPACE in Verbindung mit der RENAME-Klausel verwenden, um zu gewährleisten, dass SQL Anywhere die Datei finden kann, wenn die Datenbank gestartet wird. Der Parameter Dateiname kann ein Zeichenfolgenliteral oder eine Variable sein.

    Die Namensänderung wirkt sich folgendermaßen aus:

    • Wenn der DBSpace bereits geöffnet war, bevor die Anweisung ausgeführt wurde (d.h., Sie haben die Datei noch nicht umbenannt), bleibt er zugreifbar. Der im Katalog gespeicherte Name wird allerdings aktualisiert. Nachdem die Datenbank gestoppt wird, müssen Sie die Datei umbenennen, damit ihr Name mit dem in der RENAME-Klausel verwendeten Namen übereinstimmt. Andernfalls würde der Name nicht dem DBSpace-Namen im Katalog entsprechen und der Datenbankserver wäre nicht in der Lage, den DBSpace beim nächsten Start der Datenbank zu öffnen.

    • Wenn der DBSpace nicht geöffnet war, als die Anweisung ausgeführt wurde, versucht der Datenbankserver, ihn zu öffnen, nachdem er den Katalog aktualisiert hat. Wenn der DBSpace geöffnet werden kann, wird er zugreifbar. Es wird kein Fehler zurückgegeben, wenn der DBSpace nicht geöffnet werden kann.

      Um zu bestimmen, ob ein DBSpace geöffnet ist, führen Sie die nachfolgende Anweisung aus. Wenn das Ergebnis NULL ist, ist der DBSpace nicht geöffnet.

      SELECT DB_EXTENDED_PROPERTY('FileSize','DBSpace-Name');

      Die Verwendung von ALTER DBSPACE mit RENAME ist für den Stamm-DBSpace SYSTEM wirkungslos.

Bemerkungen

Jede Datenbank ist in einer oder mehreren Dateien enthalten. Ein DBSpace ist eine zusätzliche Datei mit einem logischen Namen für jede einzelne Datenbankdatei, die mehr Daten enthalten kann als die Hauptdatenbankdatei allein. ALTER DBSPACE ändert den Stamm-DBSpace (auch Stammdatei genannt) oder einen zusätzliche DBSpace. Die DBSpace-Namen für die Datenbank befinden sich in der Systemtabelle ISYSFILE. Der DBSpace-Name der Stammdatenbankdatei ist SYSTEM.

Wenn eine Mehrdateien-Datenbank gestartet wird, teilt die Startzeile oder die ODBC-Datenquellen-Beschreibung SQL Anywhere mit, wo die Stammdatenbankdatei zu finden ist. Die Systemtabellen befinden sich in der Hauptdatenbankdatei. SQL Anywhere durchsucht diese Systemtabellen nach der Position der anderen DBSpaces, und öffnet diese dann jeweils. Sie können angeben, in welchem DBSpace neue Tabellen erstellt werden sollen, indem Sie die default_DBSpace-Option einstellen.

Berechtigungen

DBA-Berechtigung ist erforderlich. Es muss die einzige Verbindung zur Datenbank sein.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Mit dem folgenden Beispiel wird die Größe des SYSTEM-DBSpaces um 200 Seiten erhöht:

ALTER DBSPACE system
ADD 200;

Mit dem folgenden Beispiel wird die Größe des SYSTEM-DBSpaces um 400 MByte erhöht:

ALTER DBSPACE system
ADD 400 MB;

Mit dem folgenden Beispiel wird der Dateiname des system_2 zugeordneten DBSpaces geändert:

ALTER DBSPACE system_2
RENAME 'e:\db\dbspace2.db';