【问题标题】:compress for all table is not reducing the size of my table压缩所有表并没有减少我的表的大小
【发布时间】:2017-01-23 10:30:39
【问题描述】:

我有一个包含 1000 万条记录的表,我想压缩这些记录,从而减少存储大小。该表未分区且有索引。

为了压缩现有的表,我发出如下命令

alter table table_name compress for all operations;

压缩前后,大小保持为 150994944 字节。难道我做错了什么?我也在桌子上收集了统计数据。

我也试过move compress,效果也一样

【问题讨论】:

  • 您是如何检查尺寸的? move compress 应该已经完成​​了您需要的工作。
  • 我错过了 move 关键字.. 现在它按预期工作

标签: sql oracle compression ddl


【解决方案1】:

关于压缩有两点:

1.使用包 dbms_compression.get_compression_ratio 您可以获得表的压缩率。

2.列数:压缩限制为 255 列。如果您尝试压缩超过 255 列的表,则不会执行压缩,尽管您没有收到错误消息

【讨论】:

    【解决方案2】:

    将表设置为压缩对现有数据没有任何作用。您必须以某种方式重新加载数据(最简单的方法是“更改表移动”),并且在这样做时,您需要重建任何最终状态为 UNUSABLE 的索引。

    请注意,压缩“所有操作”需要在企业版之外的单独许可证。 “基本”压缩没有。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 2019-11-14
      • 2019-12-14
      • 2013-03-09
      • 1970-01-01
      • 2018-11-19
      • 2013-05-26
      • 2020-07-05
      • 2013-04-05
      相关资源
      最近更新 更多