Wenn wir in einer Oracle-Datenbank eine Tabelle löschen, wird der damit verbundene Tabellenbereich nicht automatisch freigegeben, was zu einer großen Menge an Junk-Daten in der Datenbank führt und somit Speicherplatz verschwendet. Daher müssen wir nach dem Löschen der Tabelle den belegten Tabellenbereich manuell freigeben. Als Nächstes wird in diesem Artikel erläutert, wie Tabellen gelöscht und der entsprechende Tabellenbereich in der Oracle-Datenbank freigegeben werden.
1. Zwei Möglichkeiten, eine Tabelle zu löschen
In der Oracle-Datenbank können wir zwei Möglichkeiten verwenden, um eine Tabelle zu löschen:
Verwenden Sie die DROP TABLE-Anweisung, um eine Tabelle vollständig zu löschen folgt:
DROP TABLE table_name;
Unter diesen ist Tabellenname der Name der Tabelle, die gelöscht werden muss. Beachten Sie, dass Sie beim Löschen einer Tabelle Eigentümer der Tabelle oder die Berechtigung DROP ANY TABLE sein müssen.
Die TRUNCATE TABLE-Anweisung kann schnell alle Daten in einer Tabelle löschen, löscht jedoch nicht die Tabellenstruktur:
TRUNCATE TABLE table_name;
Es ist zu beachten, dass die TRUNCATE TABLE-Anweisung dies kann Löschen Sie nur die gesamten Tabellendaten, können Sie jedoch keinen Teil der Daten in der Tabelle löschen. Im Vergleich zur DROP TABLE-Anweisung ist die Verwendung der TRUNCATE TABLE-Anweisung zum Löschen von Daten schneller und sicherer.
2. Löschen Sie die Tabelle und geben Sie den Tabellenbereich frei
Unabhängig davon, ob Sie die DROP TABLE-Anweisung oder die TRUNCATE TABLE-Anweisung verwenden, wird der entsprechende Tabellenbereich nicht automatisch freigegeben. Daher müssen wir den belegten Tabellenplatz nach dem Löschen der Tabelle manuell freigeben. Die spezifische Methode lautet wie folgt:
Bevor wir die Tabelle löschen, müssen wir zunächst den von der Zieltabelle verwendeten Tabellenbereich überprüfen. Wir können die Speicherinformationen der Tabelle mit der folgenden Anweisung abfragen:
SELECT table_name, tablespace_name, bytes FROM user_segments WHERE segment_type = 'TABLE' AND table_name = 'TABLE_NAME';
Unter diesen ist Tabellenname der Name der abzufragenden Tabelle. In den Abfrageergebnissen werden der Name und die Größe des von der Tabelle belegten Tabellenbereichs angezeigt.
Bevor wir die Tabelle löschen, müssen wir die Daten für eine zukünftige Wiederherstellung sichern. Beim Löschen einer Tabelle können wir die Anweisung DROP TABLE oder die Anweisung TRUNCATE TABLE verwenden. Spezifische Methoden finden Sie oben.
Nach dem Löschen der Tabelle müssen wir den mit der Tabelle verbundenen Tabellenbereich manuell freigeben. Wir können den Tabellenbereich durch die folgende Anweisung freigeben:
ALTER TABLESPACE tablespace_name COALESCE;
Dabei ist Tabellenbereichsname der Name des Tabellenbereichs, der freigegeben werden muss. Das Schlüsselwort COALESCE wird verwendet, um ungenutzte Tabellenbereichsfragmente in größeren zusammenhängenden Bereich umzuorganisieren und so den Tabellenbereich freizugeben.
Es ist zu beachten, dass die Freigabe des Tabellenbereichs zu Leistungseinbußen bei anderen Tabellen führen kann, wenn der Tabellenbereich von mehreren Tabellen gemeinsam genutzt wird. Daher ist es am besten, den Tabellenbereich für eine zukünftige Wiederherstellung zu sichern.
3. Zusammenfassung
In Oracle-Datenbanken ist das Löschen von Tabellen und das Freigeben von Tabellenplatz einer der wichtigen Vorgänge zur Aufrechterhaltung der Datenbankleistung und des Speicherplatzes. In diesem Artikel wird erläutert, wie Sie mit der DROP TABLE-Anweisung oder der TRUNCATE TABLE-Anweisung eine Tabelle löschen, und anhand von Beispielen wird gezeigt, wie Sie den entsprechenden Tabellenbereich manuell freigeben. Bei der Durchführung dieser Vorgänge ist Vorsicht geboten, um unnötige Schäden an der Datenbank zu vermeiden.
Das obige ist der detaillierte Inhalt vonSo löschen Sie eine Tabelle und geben Tabellenbereich in Oracle frei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!