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

Oracle 压缩基本表

askTom 2017-04-18
190

问题描述

汤姆,我需要帮助。
-如果我在分区上创建一个带有COMPRESS BASIC的表,然后从另一个表中插入数据不会减小大小。

-现在,如果我使用以下内容从另一个创建表:
创建表作为SELECT * 从TABLE_2
如果表的大小减小,则压缩基本分区。

我做错了什么?

谢谢。

专家解答

仅使用 * 直接 * 模式操作压缩基本工作。例如,让我们将100兆字节的原始数据加载到空表中-首先使用标准插入,然后使用直接模式插入

SQL> create table t ( x char(1000) ) compress basic;

Table created.

SQL>
SQL> insert into t
  2  select 'x'
  3  from dual connect by level <= 100000;

100000 rows created.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> select bytes/1024/1024 meg from user_segments
  2  where segment_name = 'T';

       MEG
----------
       104

1 row selected.

SQL>
SQL> truncate table t drop storage;

Table truncated.

SQL>
SQL>
SQL> insert /*+ append */ into t
  2  select 'x'
  3  from dual connect by level <= 100000;

100000 rows created.

SQL>
SQL> commit;

Commit complete.

SQL>
SQL> select bytes/1024/1024 meg from user_segments
  2  where segment_name = 'T';

       MEG
----------
         2

复制


create-table-as-select是一种直接模式操作,因此您观察到的差异。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论