暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 删除基本压缩

askTom 2017-09-29
258

问题描述

从生产环境中的表和分区中删除compress basic的最佳方法是什么?

专家解答

如果您只想更改表以使新分区不被压缩,则可以执行以下操作:

SQL> @drop t

Y1                      Y2
----------------------- -------------------------
TABLE                   cascade constraints purge

1 row selected.


Table dropped.

SQL>
SQL> create table t ( x int )
  2   partition by range ( x )
  3   ( partition p1 values less than ( 1000 ),
  4    partition p2 values less than ( 2000 )
  5   )
  6   compress;

Table created.

SQL>
SQL> insert /*+ append */ into t
  2  select rownum from dual
  3  connect by level < 2000;

1999 rows created.

SQL> commit;

Commit complete.

SQL>
SQL>
SQL> select  partition_name, compression, compress_for
  2  from user_tab_partitions
  3  where table_name = 'T';

PARTITION_NAME                 COMPRESS COMPRESS_FOR
------------------------------ -------- ------------------------------
P1                             ENABLED  BASIC
P2                             ENABLED  BASIC

2 rows selected.

SQL>
SQL> alter table t modify default attributes nocompress;

Table altered.

SQL>
SQL> alter table t add partition p3 values less than (3000);

Table altered.

SQL>
SQL> select  partition_name, compression, compress_for
  2  from user_tab_partitions
  3  where table_name = 'T';

PARTITION_NAME                 COMPRESS COMPRESS_FOR
------------------------------ -------- ------------------------------
P1                             ENABLED  BASIC
P2                             ENABLED  BASIC
P3                             DISABLED

3 rows selected.

SQL>
SQL>


如果要解压缩现有分区,则需要执行 “alter table move partition...”,这将在操作期间锁定这些行。如果这是一个问题,您将需要查看DBMS_REDEFINITION (有关AskTOM的大量示例)。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论