【问题标题】:What is Oracle Advanced Compression?什么是 Oracle 高级压缩?
【发布时间】:2020-10-09 06:00:29
【问题描述】:

所以我在某处读到它是关于数据库容量规划的,从我读到它是关于更改 DDL。因此,如果我已经拥有现有的表,我将不得不更改表。

我从这里link 读到它是这样写的。

<alter table emp move compress for all operations;>

就这么简单吗?我只需要使用那个改变脚本来改变我的所有表格吗? 将来会不会有麻烦?就像我必须调整的东西? 因为我要修改的表是我的数据仓库的表,我的工作是插入和更新,或者对它们进行一些 DML。

我也听说过: 1.空压缩 2. 价值压缩 3. 表间压缩

以上3点和高级压缩一样吗?

【问题讨论】:

    标签: database oracle oracle11g


    【解决方案1】:

    Oracle Advanced Compression 是一个可用于 Oracle 数据库企业版的实用程序包。它包含多个功能,但是小心它是一个许可选项,因此这意味着您必须为此付费。如果您只需要压缩表以节省存储空间,则可以使用基本压缩。 如果我的公司可以支付所需的附加许可证,我会使用 Advanced Compression,因为它非常好并且提供了很多功能。请始终记住,压缩是计算能力和存储消耗之间的权衡。

    例子

    基本压缩

    create table t1 ( c1 number, c2 varchar2(1) ) compress basic ;
    

    高级压缩

    create table t2 ( c1 number, c2 varchar2(1) )  ROW STORE COMPRESS ADVANCED;
    

    关于更改表以对其进行压缩,请考虑以下几点:

    我创建一个没有压缩的表

    create table t1 ( c1 number , c2 varchar2(1) ) nocompress ;
    

    我在上面插入记录和记录,然后我改变表

    alter table t1 compress;
    

    上面的命令不会压缩之前插入的行。它只会压缩之后插入的数据。压缩现有数据

    alter table t1 move compress;
    

    问候

    【讨论】:

    • 我已经尝试过了,是的,当我在使用压缩之后比较之前,它显示了“字节”大小的差异。你对这些有任何想法 1. 空压缩 2. 值压缩 3. 表之间的压缩?
    【解决方案2】:

    您可以在concepts guide 中了解不同的压缩可能性。将表从非压缩转换为压缩就像您所说的那样简单。不过,这可能需要一些时间,具体取决于表的大小。 如果这是 DWH,并且您很少更新数据,则可以使用“基本压缩”而无需任何额外费用。你也可以只在大事实表上使用它,而不是在小维度表上。

    【讨论】:

    • 所以压缩不会改变或不会产生任何未来的问题?就像我在表中添加了一个分区,如果数据不匹配分区条件,即数据的值大于我的分区,它将拒绝数据。但是它会像压缩一样拒绝数据吗?或者它会使空值消失还是什么?谢谢你..
    • 分区与压缩无关,你可以压缩部分分区而不是全部。您插入的行应该进入正确的分区,如果不存在,则会出现错误(如果您没有默认分区)。压缩对 DB 如何处理 NULL 值没有影响。
    • @PiPio,分区与压缩完全无关。压缩只会使数据消耗更少的存储空间。但是,您需要考虑一些方面。例如,压缩将不允许您删除表的列,在这种情况下,您将需要解压缩、移动表、删除列、压缩并移回表
    • 基本压缩不允许删除列,其他类型允许。
    猜你喜欢
    • 2012-06-22
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 2023-03-19
    相关资源
    最近更新 更多