2017-01-23 20 views
0

私は圧縮したいと思うテーブルを1000万レコード用意しています。テーブルは分割されておらず、インデックスを持ちます。だから、既存のテーブルを圧縮するすべてのテーブルの圧縮でテーブルのサイズが縮小されていません

、私は圧縮前と後の

alter table table_name compress for all operations; 

以下のようなコマンドを発行して、サイズが150994944バイトとして残りました。私は何か間違っているのですか?私はテーブル上の統計情報も収集しました。同じ効果を持っている私も、同様move compressを試してみました

は、同様

+2

どのようにサイズを確認しましたか? 'move compress'は必要な処理を行っていたはずです。 – Aleksej

+0

私は移動キーワードを逃した..今は期待どおりに働いている – Maharajaparaman

答えて

0

は、圧縮の2点があります:あなたは上の圧縮率を得ることができますdbms_compression.get_compression_ratio

がパッケージを.usingあなた表。

。列の数:圧縮は255列に制限されています。 255を超える列を含む表を圧縮しようとすると、エラーメッセージは表示されませんが、圧縮は実行されません。

0

表を圧縮に設定すると、既存のデータは何も実行されません。データを何らかの方法でリロードする必要があります(最も簡単な方法は「テーブル移動を変更する」)。そうすることで、ステータスがUNUSABLEになるインデックスを再構築する必要があります。

「すべての操作のために圧縮する」には、エンタープライズ版とは別のライセンスが必要です。 「基本的な」圧縮は行いません。

関連する問題