oracle11g高级压缩
来源:互联网 发布:驾图世界数据大会 编辑:程序博客网 时间:2024/06/06 00:00
oracle11g高级压缩
oracle11g版本推出基于数据块级别高级压缩,以前版本的表级别压缩限制较多,更适合于数据直接加载的数据仓库,在OLTP环境下使用较少,既然名叫高级压缩,在功能上应该是有相当大的提升。
高级压缩特点:
1,建表时可以指定压缩参数,无需使用直接路径加载创建压缩表
2,支持DML操作,老版本的压缩不会压缩后续DML操作的数据
3,对现有的非压缩表可以设置压缩参数,后续数据会启用压缩,现有数据不会压缩
4,对DML操作影响很小,压缩操作只会在数据块接近饱和时运行
5,可以压缩rman备份,网络数据包,DG主库日志等
6,压缩效果明细,能节省GB级的存储空间,数据表各列重复数据较多的情况下,采用高级压缩效果更好
高级压缩使用
建表时默认不启用压缩选项,如果要使用高级压缩在建表语句后面加上compress for oltp
create table COMPTB_C( owner VARCHAR2(30), object_name VARCHAR2(128), edition_name VARCHAR2(30))compress for oltp;
对现有非压缩表启用高级压缩,现有数据不会压缩,只会压缩后续数据
alter table comptb_s compress for oltp
高级压缩示例
新建两个测试表,一个采用压缩,另一个不启用压缩
SQL> create table comtab compress for oltp 2 as select * from dba_objects 3 where 1=0;Table created.SQL> create table nocomtab as 2 select * from dba_objects 3 where 1=0;Table created.插入测试数据
SQL> insert into comtab select * from dba_objects;72042 rows created.SQL> commit;Commit complete.SQL> insert into nocomtab select * from dba_objects;72042 rows created.收集统计信息
SQL> begin 2 dbms_stats.gather_table_stats( 3 ownname => user, 4 tabname => 'COMTAB'); 5 end; 6 /PL/SQL procedure successfully completed.SQL> begin 2 dbms_stats.gather_table_stats( 3 ownname => user, 4 tabname => 'NOCOMTAB'); 5 end; 6 /PL/SQL procedure successfully completed.
查看user_tab_statistics视图
select table_name,num_rows,blocks from user_tab_statistics where table_name in('COMTAB','NOCOMTAB');
SQL> select table_name,num_rows,blocks from user_tab_statistics where table_name in('COMTAB','NOCOMTAB');TABLE_NAME NUM_ROWS BLOCKS------------------------------ ---------- ----------COMTAB 72042 496NOCOMTAB 720421126
同样的数据量,高级压缩使用更少的数据块存储,在全表扫描时,高级压缩将提供更好的IO性能,在使用索引检索数据时,索引范围扫描和索引快速全扫描在高级压缩表上有更好的表现
全表扫描示例
SQL> set autotrace traceSQL> select * from comtab;71991 rows selected.Execution Plan----------------------------------------------------------Plan hash value: 1463407995----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 71991 | 6819K|95 (2)| 00:00:02 || 1 | TABLE ACCESS FULL| COMTAB | 71991 | 6819K|95 (2)| 00:00:02 |----------------------------------------------------------------------------Statistics---------------------------------------------------------- 1 recursive calls 0 db block gets 5109 consistent gets 0 physical reads 0 redo size 3720394 bytes sent via SQL*Net to client 53313 bytes received via SQL*Net from client 4801 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 71991 rows processed
SQL> select * from nocomtab;71992 rows selected.Execution Plan----------------------------------------------------------Plan hash value: 754113270------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 71992 |6819K| 287 (1)| 00:00:04 || 1 | TABLE ACCESS FULL| NOCOMTAB | 71992 |6819K| 287 (1)| 00:00:04 |------------------------------------------------------------------------------Statistics---------------------------------------------------------- 1 recursive calls 0 db block gets 5768 consistent gets 0 physical reads 0 redo size 8254868 bytes sent via SQL*Net to client 53313 bytes received via SQL*Net from client 4801 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 71992 rows processed
两边的一致性读次数相差600左右,初看差别不是很大,但是最大的性能差距就是在这600个一致性读上面,剩余的那5000次是唬人的,具体分析后续会补上。
总之,11g的高级压缩功能比之前的版本确实好用了,已经不限于数据仓库,在常规的OLTP场景下也能取得很好的效果。
0 0
- oracle11g高级压缩
- oracle11g表压缩
- Oracle11G-SQL开发指南-7-高级查询
- 列出要使用Oracle11g的表压缩,需要打的补丁
- oracle11g
- 文件流高级-压缩文件和解压缩
- 文件流高级-压缩文件和解压缩
- Nginx高级配置之Gzip压缩配置
- Oracle11G数据泵expdp/impdp使用并行与压缩技术备份与恢复
- 9Filter高级开发2--实现全站压缩
- 【Android高级】安卓图片压缩算法详解
- 使用Google Closure Compiler高级压缩Javascript代码
- Oracle 12C高级压缩索引 Advanced Index Compression
- oracle 12.1.0.2 新特性高级索引压缩
- Filter高级开发(三)——压缩响应正文内容
- ORACLE RMAN 高级话题一(分片与压缩)
- 【翻译自mos文章】oracle数据库中 基本的表压缩和高级压缩之间的区别
- oracle11g 特性
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- Websphere中引起的空指针错误的解决办法小结
- 使用websocket实现录音实例
- Android安全测试之BurpSuite抓包
- 5-HBase存储
- oracle11g高级压缩
- C++ Primer学习笔记之第三章--字符串,向量和数组
- Nginx中双向链表ngx_queue_t的实现及用法总结
- iOS framework制作 带你走出那些坑
- 【转】机器语言
- 系统交互在技术上的设计要素
- 浅谈MVC、MVP、MVVM架构模式的区别和联系
- Ubuntu 程序“java”已包含在下列软件包中
- Spring AOP实践--记录类方法执行时间