压缩数据以进行直接路径加载

问题描述:
dss系统(decision support system)环境中包含许多加载一次,然后频繁扫描的表,采用压缩可以节省io,带来额外的cpu消耗

解决方案:
使用oracle基本压缩特性将直接路径加载的数据压缩
1、使用compress子句创建,修改或移动表时启用压缩
2、通过直接路径方式(create table ... as select或insert /*+ append */)加载数据

创建基本压缩的表
create table regs_dss compress as select * from regs;
可以使用compress或compress basic启用压缩,作用相同
select table_name,compression,compress_for from user_tables where table_name='REGS_DSS';

对于已经创建的表使用alter命令修改压缩属性
alter table regs_dss compress;
这不会影响现有的数据,只会对接下来采用直接路径加载的数据进行压缩,如果想对现有的数据压缩,使用
alter table regs_dss move compress;
move以后表上的索引会失效,需要重建

禁用压缩
alter table regs_dss nocompress;
同样不会对现有的数据解压缩,想要解压缩使用:
alter table regs_dss move nocompress;

工作原理:
基本压缩是适用于dss系统的压缩,对直接路径有效,对基本的dml无影响,也无效。如果系统中有额外的空闲cpu,但是io资源紧张,则可以使用压缩特性以cpu换io,压缩可以指定在表级别以及表空间级别
create tablespace comp_data datafile 'xxx' size 500m extent management local segment space management auto default compress;
也可以修改已有的表空间,设置默认压缩:
alter tablespace comp_data default compress;
select tablespace_name,def_tab_compression,compress_for from dba_tablespaces where tablespace_name='COMP_DATA';

压缩表中不能删除列,但可以将列标记为未使用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值