Oracle压缩总结2— 估计表压缩效应
使用压缩前,我们可以估算压缩能有多大效果。
11gr2我已经能够使用dbms_comp_advisor,具体代码见附件。只需要运行两个文件dbmscomp.sql和prvtcomp.plb。然后使用DBMS_COMP_ADVISOR.getratio存储过程就可以。不再具体描写叙述。
SQL> set serveroutput on
SQL> execdbms_comp_advisor.getratio('SH','SALES',10)
Sampling table: SH.SALES
Sampling percentage: 10%
Estimated compression ratio for the advancedcompression option is : 2.96
11gr2以后系统会自带一个dbms_compression的包,用来取代dbms_comp_advisor提供服务。
_sys@FAKE> desc dbms_compression
PROCEDURE GET_COMPRESSION_RATIO
ArgumentName Type In/Out Default?
----------------------------------------------------- ------ --------
SCRATCHTBSNAME VARCHAR2 IN
OWNNAME VARCHAR2 IN
TABNAME VARCHAR2 IN
PARTNAME VARCHAR2 IN
COMPTYPE NUMBER IN
BLKCNT_CMP BINARY_INTEGER OUT
BLKCNT_UNCMP BINARY_INTEGER OUT
ROW_CMP BINARY_INTEGER OUT
ROW_UNCMP BINARY_INTEGER OUT
CMP_RATIO NUMBER OUT
COMPTYPE_STR VARCHAR2 OUT
SUBSET_NUMROWS NUMBER IN DEFAULT
FUNCTION GET_COMPRESSION_TYPE RETURNS NUMBER
ArgumentName Type In/Out Default?
----------------------------------------------------- ------ --------
OWNNAME VARCHAR2 IN
TABNAME VARCHAR2 IN
ROW_ID ROWID IN
PROCEDURE INCREMENTAL_COMPRESS
ArgumentName Type In/Out Default?
----------------------------------------------------- ------ --------
OWNNAME VARCHAR2(30) IN
TABNAME VARCHAR2(128) IN
PARTNAME VARCHAR2(30) IN
COLNAME VARCHAR2 IN
DUMP_ON NUMBER IN DEFAULT
AUTOCOMPRESS_ON NUMBER IN DEFAULT
WHERE_CLAUSE VARCHAR2 IN DEFAULT
重点看GET_COMPRESSION_RATIO这个存储过程。它能够预估表的压缩比例。
能够使用下面的匿名块运行。
DECLARE
blkcnt_comp PLS_INTEGER;
blkcnt_uncm PLS_INTEGER;
row_comp PLS_INTEGER;
row_uncm PLS_INTEGER;
comp_ratio number;
comp_type VARCHAR2(30);
username varchar2(30) := '&USER';
tablename varchar2(30) := '&TB' ;
BEGIN
dbms_compression.get_compression_ratio('&Usedtbs',
username,
tablename,
NULL,
dbms_compression.COMP_FOR_OLTP,
blkcnt_comp,
blkcnt_uncm,
row_comp,
row_uncm,
comp_ratio,
comp_type);
dbms_output.put_line('Sampling table: '||username||'.'||tablename);
dbms_output.put_line('Estimated compression ratio: ' ||TO_CHAR(comp_ratio));
dbms_output.put_line('Compression Type: ' || comp_type);
END;
/
运行效果:
/
Enter value for user: DEXTER
old 8: username varchar2(30) :='&USER';
new 8: username varchar2(30) :='DEXTER';
Enter value for tb: ACCOUNT
old 9: tablename varchar2(30) :='&TB' ;
new 9: tablename varchar2(30) :='ACCOUNT' ;
Enter value for usedtbs: USERS
old 11: dbms_compression.get_compression_ratio('&Usedtbs',
new 11: dbms_compression.get_compression_ratio('USERS',
Sampling table: DEXTER.ACCOUNT
Estimated compression ratio: 1
Compression Type: "Compress For OLTP" PL/SQL procedure successfully completed.
由于表中的反复值很少,上文中Estimated compression ratio: 1,表示没有不论什么压缩效果。
高级压缩,基于块内的压缩。所以就算有反复值。可是没有在一个块中,那么高级压缩还是无法起作用。
这里重点介绍一个參数 COMPTYPE,它一共同拥有6个选项。各自是
COMP_NOCOMPRESS CONSTANT NUMBER := 1;
COMP_FOR_OLTP CONSTANT NUMBER := 2;
COMP_FOR_QUERY_HIGH CONSTANT NUMBER := 4;
COMP_FOR_QUERY_LOW CONSTANT NUMBER := 8;
COMP_FOR_ARCHIVE_HIGH CONSTANT NUMBER := 16;
COMP_FOR_ARCHIVE_LOW CONSTANT NUMBER := 32;
Query high 下面都是HCC(HybridColumnar Compression)的内容。由于与Exadata的存储节点相关。所以在非Exadata一体机环境无法使用。只是有意思的是,你能够在普通环境下使用get_compression_ratio来预估压缩的比例。
11gr2曾经compression-advisor存储过程下载地址:
http://download.csdn.net/detail/renfengjun/7514723
版权声明:本文博主原创文章,博客,未经同意不得转载。
Oracle压缩总结2— 估计表压缩效应的更多相关文章
- oracle 表压缩技术
压缩表是我们维护管理中常常会用到的.以下我们看都oracle给我们提供了哪些压缩方式. 文章摘自"Oracle® Database Administrator's Guide11g Rele ...
- [Oracle] - 查看数据库中每个表占用空间大小,及进行表压缩
查询用户创建的表 select * from user_tab_comments; -- 查询本用户的表,视图等. select * from user_col_comments; -- 查询本用户的 ...
- 7、SQL Server索引、表压缩
索引 什么是索引? 索引是一种磁盘上的数据结构,建立在表或视图的基础上.使用索引可以使数据的获取更快更高校,也会影响其他的一些性能,如插入或更新等. 索引主要分为两种类型:聚集索引和非聚集索引. 字典 ...
- 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)
三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部 ...
- SQL Server 表压缩
表压缩有三个选项 1.page 2.row 3.none ----------------------------------------------------------------------- ...
- 【SQL Server性能优化】SQL Server 2008该表压缩
当数据库是比较大的,而当你想备份,我们可以启动数据库备份压缩.这项由于备份文件比较小的压缩,所以整个备份的更快的速度,同时还低了磁盘空间的消耗. 当然还有一方面.肯定会添加cpu的消耗.只是一般的se ...
- MySQL InnoDB表压缩
MySQL InnoDB表压缩 文件大小减小(可达50%以上) ==> 查询速度变快(count * 约减少20%以上时间) 如何设置mysql innodb 表的压缩: 第一,mysql的版本 ...
- hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)
数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果 ...
- mysql 表压缩
mysql中经常出现历史表,这些表不会进行修改数据的操作,只有读操作.那么我们可以对其进行压缩处理,缩减磁盘空间.Innodb表和MyISAM表的压缩指令不一样.下面分别来讨论: 一.InnoDB表 ...
随机推荐
- python学习笔记之八:迭代器和生成器
一. 迭代器 在前面的笔记中,已经提到过迭代器(和可迭代),这里会对此进行深入讨论.只讨论一个特殊方法---__iter__,这个方法是迭代器规则的基础. 1.1 迭代器规则 迭代的意思是重复做一些事 ...
- firefox os 2.1版本号UI接口方面有了质的飞跃
由Mozilla新的移动设备操作系统开发Firefox os 经过多次迭代,我们看到的版本号Mozilla进步和艰辛,在充满当然,任何Android设备的情况下,坚持一个新的操作系统的移动设备,后1. ...
- Ubuntu在下面LAMP(Linux+Apache+MySQL+PHP) 开发环境的搭建
LAMP在行业是一个非常流行的词.此4字母代表Linux.Apache,MySQL和PHP. LAMP其高效.灵活的特点已经成为中小企业的首选. 它已经推出了快速构建LAMP道路. 1 在Ubuntu ...
- Windows Phone开发(23):启动器与选择器之CameraCaptureTask和PhotoChooserTask
原文:Windows Phone开发(23):启动器与选择器之CameraCaptureTask和PhotoChooserTask 这两个组件都属于选择器,而且它们也有很多相似的地方,最明显的上一点, ...
- spring3.0注解定时任务配置及说明
spring注解方式的定时任务配置: 第一步:spring配置文件 <?xml version="1.0" encoding="UTF-8"?> & ...
- sql中 in 、not in 、exists、not exists 使用方法和区别
% 的一类. NOT IN:通过 NOT IN keyword引入的子查询也返回一列零值或很多其它值. 以下查询查找没有出版过商业书籍的出版商的名称. SELECT pub_name FROM pub ...
- TCP和UDP的差别
简单的差别: TCP提供面向连接的.可靠的数据流传输,而UDP提供的是非面向连接的.不可靠的数据流传输. TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报. TCP注重数据安全性,UDP传 ...
- 返璞归真 asp.net mvc (1) - 添加、查询、更新和删除的 Demo
原文:返璞归真 asp.net mvc (1) - 添加.查询.更新和删除的 Demo [索引页] [源码下载] 返璞归真 asp.net mvc (1) - 添加.查询.更新和删除的 Demo 作者 ...
- 技术七Gitservergitolite要构建和操作方便
最近,人懒,为了让自己的变化,所以,我决定花时间学习一些新的技术,.对于这些新技术,现在的需求不是很高.只需要在它的入口. 由于本人仅仅是花三四天整出来的东西,所以不洗勿喷,另外难免会有错误,如有还请 ...
- [LeetCode202]Happy Number判断一个数是不是happy number
题目: Write an algorithm to determine if a number is "happy". A happy number is a number def ...