Oracle データベースでは、テーブルを削除しても、そのテーブルに関連付けられたテーブル スペースが自動的に解放されないため、データベース内に大量のジャンク データが残り、ストレージ スペースが無駄になります。したがって、テーブルを削除した後、占有されているテーブルスペースを手動で解放する必要があります。次に、この記事では、Oracle データベース内のテーブルを削除し、対応するテーブルスペースを解放する方法を紹介します。
1. テーブルを削除する 2 つの方法
Oracle データベースでは、テーブルを削除する 2 つの方法を使用できます:
DROP TABLE ステートメントを使用してテーブルを完全に削除します。構文は次のとおりです:
DROP TABLE table_name;
このうち、table_name は削除する必要があるテーブルの名前です。テーブルを削除する場合は、テーブルの所有権を持っているか、DROP ANY TABLE 権限を持っている必要があることに注意してください。
TRUNCATE TABLE ステートメントはテーブル内のすべてのデータをすばやく削除できますが、テーブル構造は削除されません。その構文は次のとおりです:
TRUNCATE TABLE table_name;
TRUNCATE TABLE ステートメントはテーブル全体のデータのみを削除でき、テーブル内のデータの一部は削除できないことに注意してください。 DROP TABLE ステートメントと比較して、TRUNCATE TABLE ステートメントを使用してデータを削除する方が高速かつ安全です。
2. テーブルを削除し、テーブル スペースを解放します。
DROP TABLE ステートメントまたは TRUNCATE TABLE ステートメントを使用しても、対応するテーブル スペースは自動的に解放されません。したがって、テーブルを削除した後、占有されているテーブルスペースを手動で解放する必要があります。具体的な方法は以下の通りです。
テーブルを削除する前に、対象のテーブルが使用しているテーブルスペースを確認する必要があります。 。次のステートメントを通じてテーブルのストレージ情報をクエリできます。
SELECT table_name, tablespace_name, bytes FROM user_segments WHERE segment_type = 'TABLE' AND table_name = 'TABLE_NAME';
このうち、table_name はクエリ対象のテーブルの名前です。クエリ結果には、テーブルが占有するテーブルスペースの名前とサイズが表示されます。
テーブルを削除する前に、将来の回復に備えてデータをバックアップする必要があります。テーブルを削除するときは、DROP TABLE ステートメントまたは TRUNCATE TABLE ステートメントを使用できます。具体的な方法については上記を参照してください。
テーブルを削除した後、テーブルに関連するテーブルスペースを手動で解放する必要があります。次のステートメントを使用して表スペースを解放できます。
ALTER TABLESPACE tablespace_name COALESCE;
ここで、tablespace_name は、解放する必要がある表スペースの名前です。 COALESCE キーワードは、未使用の表スペースのフラグメントをより大きな連続スペースに再編成し、それによって表スペースを解放するために使用されます。
テーブルスペースが複数のテーブルで共有されている場合、テーブルスペースを解放すると他のテーブルのパフォーマンスが低下する可能性があるため、テーブルスペースを解放する前に、テーブルスペースをバックアップすることをお勧めします。将来の使用のためにテーブルスペースを回復します。
3. 概要
Oracle データベースでは、テーブルの削除とテーブル領域の解放は、データベースのパフォーマンスとストレージ領域を維持するための重要な操作の 1 つです。この記事では、DROP TABLE ステートメントまたは TRUNCATE TABLE ステートメントを使用してテーブルを削除する方法を紹介し、例を使用して対応するテーブル スペースを手動で解放する方法を示します。これらの操作を実行するときは、データベースへの不必要な損傷を避けるために注意が必要です。
以上がOracle でテーブルを削除し、テーブルスペースを解放する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。