Database 什么是Oracle高级压缩?
所以我在某个地方读到过,它是关于DB的容量规划,从我读到的内容来看,它是关于更改DDL的。因此,如果我已经有了现有的表,我就必须修改表 我从这里读过,上面写着这样的Database 什么是Oracle高级压缩?,database,oracle,oracle11g,Database,Oracle,Oracle11g,所以我在某个地方读到过,它是关于DB的容量规划,从我读到的内容来看,它是关于更改DDL的。因此,如果我已经有了现有的表,我就必须修改表 我从这里读过,上面写着这样的 <alter table emp move compress for all operations;> 这么简单吗?我只需要用alter脚本修改我所有的表? 它将来会制造麻烦吗?就像我必须调整事情一样? 因为我要修改的表是我的数据仓库的表,我的工作将对它们进行插入和更新,或者一些DML 我还听说: 1.空压缩 2.
<alter table emp move compress for all operations;>
这么简单吗?我只需要用alter脚本修改我所有的表?
它将来会制造麻烦吗?就像我必须调整事情一样?
因为我要修改的表是我的数据仓库的表,我的工作将对它们进行插入和更新,或者一些DML
我还听说:
1.空压缩
2.价值压缩
3.表间压缩
以上三点是否与高级压缩相同?Oracle高级压缩是一套适用于Oracle数据库企业版的实用程序包。它包含多个功能,但是要小心,这是一个许可选项,因此意味着您必须为此付费。如果只需要压缩表以节省存储空间,则可以使用基本压缩。 如果我的公司能够支付所需的附加许可证,我会使用高级压缩,因为它非常好,提供了很多功能。请始终记住,压缩是计算能力和存储消耗之间的权衡 范例 基本压缩
create table t1 ( c1 number, c2 varchar2(1) ) compress basic ;
create table t1 ( c1 number , c2 varchar2(1) ) nocompress ;
高级压缩
create table t2 ( c1 number, c2 varchar2(1) ) ROW STORE COMPRESS ADVANCED;
关于更改表格以压缩它,请考虑以下事项:
我创建了一个没有压缩的表
create table t1 ( c1 number, c2 varchar2(1) ) compress basic ;
create table t1 ( c1 number , c2 varchar2(1) ) nocompress ;
我在上面插入记录,然后修改表格
alter table t1 compress;
上面的命令不会压缩以前插入的行。它只会压缩随后插入的数据。压缩现有数据的步骤
alter table t1 move compress;
关于您可以在中阅读有关不同压缩可能性的信息。将表从非压缩转换为压缩就像您所说的那样简单。不过,这可能需要一些时间,具体取决于桌子的大小。
如果这是一个DWH,并且您很少更新数据,那么您可以使用“基本压缩”,而无需任何额外成本。您也可以只在大型事实表上使用它,而不是在小维度的事实表上使用它。这样压缩就不会改变,或者将来不会出现任何问题?就像我在我的表中添加了一个分区,如果数据与分区条件不匹配,即数据的值大于我的分区,它将拒绝数据。但它会像压缩会拒绝数据那样做吗?或者它会使空值消失或者其他什么?谢谢..分区与压缩无关,您可以压缩一些分区,而不是全部分区。插入的行应该进入正确的分区,如果不存在,则会出现错误(如果没有默认分区)。压缩对DB处理空值的方式没有影响。@PiPio,分区与压缩完全无关。压缩只会使数据消耗更少的存储空间。但是,您需要考虑一些方面。例如,压缩不允许删除表中的一列,在这种情况下,您需要解压缩、移动表、删除列、压缩并向后移动表。基本压缩不允许删除列,其他类型允许。我已经尝试过了,是的,当我比较使用压缩前后的数据时,它显示了“字节”大小的差异。你对这1有什么想法吗。空压缩2。值压缩3。表之间的压缩?