我正在使用 Oracle 11g,并且要求“[C] 压缩我们的数据 [原文如此]”。我想知道压缩将如何影响未来的数据。
实际的 PL/SQL 不是问题(类似于以下内容:)
ALTER TABLE SOME_TABLE MOVE COMPRESS;
,但 DBA 告诉我,它MOVE COMPRESS
只会压缩现有数据,并且任何进一步的事务都需要显式压缩。运行该行后,查看表的存储属性,表压缩已正确设置以及所有内容,但这让我相信这将在后台继续进行。
我想我的问题是:我需要MOVE COMPRESS
在新事务之后运行(或类似的东西),还是 Oracle 会压缩数据?如果没有,我可以修改我的ALTER TABLE
声明来强制执行吗?
对于典型场景,您的 DBA 是正确的。
MOVE COMPRESS
使用基本压缩压缩现有数据。使用常规插入插入的任何新数据都将被解压缩。使用直接路径插入插入的新数据将被压缩。如果您希望压缩所有新数据,则可以使用 OLTP 压缩。那么它的语法是
COMPRESS FOR OLTP
. OLTP 压缩需要额外的许可,因为它是高级压缩选项的一部分。