私は決してデータベース管理者ではないので、ここでいくつかのことを述べるのは間違っているかもしれません。
SQL Serverでは、データベースに大量のデータを追加してから削除しても、データファイル(.mdfファイル)またはデータベース(またはそれが呼び出されるもの)のサイズが元のサイズに縮小されることはありません。 。縮小する必要があります。
同じ基本がOracleでも機能しますか?はいの場合、Oracle 11gデータベースを縮小するにはどうすればよいですか?
Oracleドキュメントからの完全な説明:無駄なスペースの再利用。短いバージョンの場合:
「表、索引構成表、索引、パーティション、サブパーティション、マテリアライズド・ビュー、またはマテリアライズド・ビュー・ログのスペースを縮小できます。これは、ALTER TABLE、ALTER INDEX、ALTER MATERIALIZED VIEW、またはALTER MATERIALIZEDVIEWLOGステートメントを使用して行います。 SHRINKSPACE句。」
したがって、Oracle Segment Advisorを実行して縮小する領域を推奨した後、次のようなものは、という名前のテーブルのスペースを縮小しますmytable
。
SQL> alter table mytable enable row movement;
Table altered
SQL> alter table mytable shrink space;
Table altered
テーブルサイズが28Gbの場合も同様ですが、テーブルからデータを削除しても、変更は発生していません。
このテーブルから別のテーブルを作成して最初のテーブルを削除した後、サイズは10Gb縮小して18Gbになりました。
CREATE TABLE NEW_TBL AS SELECT * FROM OLD_TBL