Oracle データベースでは、テーブルの削除は非常に一般的な操作ですが、テーブルを削除しても、対応するテーブル スペースがすぐに解放されるとは限らず、データベース スペースの無駄につながります。したがって、テーブルを削除するときは、テーブル領域を解放することも非常に重要な作業です。この記事では、テーブルを削除し、Oracle データベース内の対応するテーブルスペースを解放する方法を読者に紹介します。
Oracle データベースでは、テーブルの削除操作は SQL ステートメントによって実行できます。具体的な構文は次のとおりです:
DROP TABLE 表名;
このうち、table nameは削除する必要があるテーブルの名前です。
表を削除する前に、表スペースの使用状況をチェックして、表スペースが解放できることを確認する必要があります。削除後の時間。
次のステートメントを使用して、テーブル スペースの使用状況を表示できます。
SELECT TABLESPACE_NAME, FILE_NAME, ROUND(SUM(BYTES)/(1024*1024),2) AS "SIZE (MB)", AUTOEXTENSIBLE FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME, FILE_NAME, AUTOEXTENSIBLE;
このうち、DBA_DATA_FILES
は Oracle システム テーブルであり、すべてのデータ ファイル情報が含まれています。この問合せステートメントは、各表スペースに対応するデータ・ファイル名、占有サイズ、および自動拡張が許可されているかどうかを問合せできます。特定の表スペースに対応するデータファイルが自動拡張を許可している場合、表が削除された後にそのデータファイルが再占有される可能性があります。
テーブルの削除操作を実行する前に、テーブル内のデータをクリアすることを選択できます。これにより、テーブル領域の使用量を効果的に削減できます。
次のステートメントを使用して、テーブル データをクリアできます。
TRUNCATE TABLE 表名;
このうち、テーブル名は、データをクリアする必要があるテーブルの名前です。
TRUNCATE 操作は、行を 1 つずつクリアするのではなく、テーブル全体のデータをクリアする DDL ステートメントであることに注意してください。これは、各行の削除がログに記録されないため、操作が非常に高速であることを意味します。ただし、消去したデータは復元できないため、この操作には注意が必要です。
テーブル データをクリアした後、次のステートメントを使用してテーブルを削除し、対応するテーブル スペースを解放します。
DROP TABLE 表名 PURGE;
このうち、PURGE
キーワードは、表スペースの即時解放を示します。
DELETE または TRUNCATE 操作の実行後、PURGE キーワードが実行されても、表スペースがすぐに解放されない場合があることに注意してください。これは、Oracle ではテーブル スペースの使用状況が SMON (システム モニター) プロセスによって管理されているためです。SMON プロセスはデータベースを定期的にスキャンし、未使用のスペースをすべて収集し、これらのスペースを「使用可能なスペース」に変換します。したがって、表スペースをすぐに解放する必要がある場合は、ALTER TABLESPACE ステートメントを使用して表スペースを強制的に圧縮できます。
次のステートメントを使用して、解放された表スペースをクエリできます:
SELECT TABLESPACE_NAME, FILE_NAME, ROUND(SUM(BYTES)/(1024*1024),2) AS "SIZE (MB)", AUTOEXTENSIBLE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME, FILE_NAME, AUTOEXTENSIBLE;
その中には、DBA_FREE_SPACEがあります。
は、すべての空き領域情報が含まれる Oracle システム テーブルです。
Oracle データベースでは、テーブルを削除し、対応するテーブルスペースを解放することは非常に重要なタスクです。テーブルを削除する前に、テーブルスペースの使用状況を確認し、テーブルデータをクリアしてスペース使用量を削減する必要があります。テーブルを削除する場合、DROP TABLE ステートメントを使用し、PURGE キーワードを追加すると、テーブルスペースをただちに解放できます。表スペースをさらに解放する必要がある場合は、ALTER TABLESPACE ステートメントを使用して表スペースを強制的に圧縮できます。
以上がOracle でテーブルを削除してテーブルスペースを解放する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。