ホームページ > データベース > Oracle > Oracle でテーブルを削除してテーブルスペースを解放する方法

Oracle でテーブルを削除してテーブルスペースを解放する方法

PHPz
リリース: 2023-04-21 11:45:20
オリジナル
5740 人が閲覧しました

Oracle データベースでは、テーブルの削除は非常に一般的な操作ですが、テーブルを削除しても、対応するテーブル スペースがすぐに解放されるとは限らず、データベース スペースの無駄につながります。したがって、テーブルを削除するときは、テーブル領域を解放することも非常に重要な作業です。この記事では、テーブルを削除し、Oracle データベース内の対応するテーブルスペースを解放する方法を読者に紹介します。

  1. テーブルの削除

Oracle データベースでは、テーブルの削除操作は SQL ステートメントによって実行できます。具体的な構文は次のとおりです:

DROP TABLE 表名;
ログイン後にコピー

このうち、table nameは削除する必要があるテーブルの名前です。

  1. 表スペースの使用状況を確認する

表を削除する前に、表スペースの使用状況をチェックして、表スペースが解放できることを確認する必要があります。削除後の時間。

次のステートメントを使用して、テーブル スペースの使用状況を表示できます。

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 システム テーブルであり、すべてのデータ ファイル情報が含まれています。この問合せステートメントは、各表スペースに対応するデータ・ファイル名、占有サイズ、および自動拡張が許可されているかどうかを問合せできます。特定の表スペースに対応するデータファイルが自動拡張を許可している場合、表が削除された後にそのデータファイルが再占有される可能性があります。

  1. テーブルのクリア

テーブルの削除操作を実行する前に、テーブル内のデータをクリアすることを選択できます。これにより、テーブル領域の使用量を効果的に削減できます。

次のステートメントを使用して、テーブル データをクリアできます。

TRUNCATE TABLE 表名;
ログイン後にコピー

このうち、テーブル名は、データをクリアする必要があるテーブルの名前です。

TRUNCATE 操作は、行を 1 つずつクリアするのではなく、テーブル全体のデータをクリアする DDL ステートメントであることに注意してください。これは、各行の削除がログに記録されないため、操作が非常に高速であることを意味します。ただし、消去したデータは復元できないため、この操作には注意が必要です。

  1. テーブルを削除し、テーブル スペースを解放します。

テーブル データをクリアした後、次のステートメントを使用してテーブルを削除し、対応するテーブル スペースを解放します。

DROP TABLE 表名 PURGE;
ログイン後にコピー

このうち、PURGE キーワードは、表スペースの即時解放を示します。

DELETE または TRUNCATE 操作の実行後、PURGE キーワードが実行されても、表スペースがすぐに解放されない場合があることに注意してください。これは、Oracle ではテーブル スペースの使用状況が SMON (システム モニター) プロセスによって管理されているためです。SMON プロセスはデータベースを定期的にスキャンし、未使用のスペースをすべて収集し、これらのスペースを「使用可能なスペース」に変換します。したがって、表スペースをすぐに解放する必要がある場合は、ALTER TABLESPACE ステートメントを使用して表スペースを強制的に圧縮できます。

  1. 解放された表スペースの表示

次のステートメントを使用して、解放された表スペースをクエリできます:

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 システム テーブルです。

  1. 概要

Oracle データベースでは、テーブルを削除し、対応するテーブルスペースを解放することは非常に重要なタスクです。テーブルを削除する前に、テーブルスペースの使用状況を確認し、テーブルデータをクリアしてスペース使用量を削減する必要があります。テーブルを削除する場合、DROP TABLE ステートメントを使用し、PURGE キーワードを追加すると、テーブルスペースをただちに解放できます。表スペースをさらに解放する必要がある場合は、ALTER TABLESPACE ステートメントを使用して表スペースを強制的に圧縮できます。

以上がOracle でテーブルを削除してテーブルスペースを解放する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート