Weist Speicherplatz für einen DBSpace oder das Transaktionslog vorab zu oder aktualisiert den Katalog, wenn eine DBSpace-Datei umbenannt oder verschoben wird.
ALTER DBSPACE { DBSpace-Name | TRANSLOG | TEMPORARY } { ADD Anzahl [Hinzufügeeinheit] | RENAME Dateiname }
Hinzufügeeinheit : PAGES | KB | MB | GB | TB
TRANSLOG-Klausel Sie geben den speziellen DBSpace-Namen TRANSLOG an, um Plattenspeicherplatz für das Transaktionslog vorab zuzuweisen. Die Vorabzuweisung 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 Vorabzuweisung von Speicherplatz 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 Vorabzuweisung 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 (kB), Megabyte (MB), Gigabyte (GB) oder Terabyte (TB). 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, wenn Platz benötigt wird, um 256 kB für die Seitengrößen 2 kB, 4 kB und 8 kB erweitert, sowie um rund 32 Seiten für andere Seitengrößen. Die Vorabzuweisung 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. Siehe 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.
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.
DBA-Berechtigung und einzige Verbindung zur Datenbank.
Automatisches Festschreiben (Autocommit).
SQL/2008 Erweiterung des Herstellers.
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 MB erhöht:
ALTER DBSPACE system ADD 400 MB; |
Mit dem folgenden Beispiel wird der Dateiname für den DBSpace system_2 geändert:
ALTER DBSPACE system_2 RENAME 'e:\db\dbspace2.db'; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |