Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 什么是Oracle高级压缩?_Database_Oracle_Oracle11g - Fatal编程技术网

Database 什么是Oracle高级压缩?

Database 什么是Oracle高级压缩?,database,oracle,oracle11g,Database,Oracle,Oracle11g,所以我在某个地方读到过,它是关于DB的容量规划,从我读到的内容来看,它是关于更改DDL的。因此,如果我已经有了现有的表,我就必须修改表 我从这里读过,上面写着这样的 <alter table emp move compress for all operations;> 这么简单吗?我只需要用alter脚本修改我所有的表? 它将来会制造麻烦吗?就像我必须调整事情一样? 因为我要修改的表是我的数据仓库的表,我的工作将对它们进行插入和更新,或者一些DML 我还听说: 1.空压缩 2.

所以我在某个地方读到过,它是关于DB的容量规划,从我读到的内容来看,它是关于更改DDL的。因此,如果我已经有了现有的表,我就必须修改表

我从这里读过,上面写着这样的

<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。表之间的压缩?