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_RATIOArgumentName Type In/Out Default?----------------------------------------------------- ------ --------SCRATCHTBSNAME VARCHAR2 INOWNNAME VARCHAR2 INTABNAME VARCHAR2 INPARTNAME VARCHAR2 INCOMPTYPE NUMBER INBLKCNT_CMP BINARY_INTEGER OUTBLKCNT_UNCMP BINARY_INTEGER OUTROW_CMP BINARY_INTEGER OUTROW_UNCMP BINARY_INTEGER OUTCMP_RATIO NUMBER OUTCOMPTYPE_STR VARCHAR2 OUTSUBSET_NUMROWS NUMBER IN DEFAULT
FUNCTION GET_COMPRESSION_TYPE RETURNS NUMBERArgumentName Type In/Out Default?----------------------------------------------------- ------ --------OWNNAME VARCHAR2 INTABNAME VARCHAR2 INROW_ID ROWID IN
PROCEDURE INCREMENTAL_COMPRESSArgumentName Type In/Out Default?----------------------------------------------------- ------ --------OWNNAME VARCHAR2(30) INTABNAME VARCHAR2(128) INPARTNAME VARCHAR2(30) INCOLNAME VARCHAR2 INDUMP_ON NUMBER IN DEFAULTAUTOCOMPRESS_ON NUMBER IN DEFAULTWHERE_CLAUSE VARCHAR2 IN DEFAULT
重点看GET_COMPRESSION_RATIO这个存储过程。它能够预估表的压缩比例。
能够使用下面的匿名块运行。
DECLAREblkcnt_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' ;
BEGINdbms_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
版权声明:本文博主原创文章,博客,未经同意不得转载。
转载于:https://www.cnblogs.com/zfyouxi/p/4822016.html
Oracle压缩总结2— 估计表压缩效应相关推荐
- mysql innodb 1017_MySQL InnoDB表压缩
MySQL InnoDB表压缩 文件大小减小(可达50%以上) ==> 查询速度变快(count * 约减少20%以上时间) 如何设置mysql innodb 表的压缩: 第一,mysql的版本 ...
- MySQL InnoDB表压缩
MySQL InnoDB表压缩 文件大小减小(可达50%以上) ==> 查询速度变快(count * 约减少20%以上时间) 如何设置mysql innodb 表的压缩: 第一,mysql的版本 ...
- mysql 压缩表_MySQL InnoDB 表压缩(行格式压缩)
MySQL InnoDB支持数据压缩,有两种数据压缩方式,第一种为表压缩,通常也称之为行格式压缩,另外一种是页压缩,页压缩对操作系统及文件系统有一定的要求.本文主要介绍表压缩(行格式压缩)的原理及使用 ...
- MySQL中的表压缩功能
MySQL版本:8.0.22 os:linux ubuntu 语言:c++.c 在MySQL中支持3种类型的表压缩,依次为:传统压缩.TPC压缩.字典压缩. 第一种:传统压缩 传统的表压缩方式是在My ...
- [Hive] Hive表压缩
目录 (1)压缩概述 (2)开启Map输出阶段压缩 (3)开启Reduce输出阶段压缩 (4)创建表时指定压缩格式 (1)压缩概述 MR支持的压缩编码,表1 为了支持多种压缩/解压缩算法,Hadoop ...
- sqlserver表压缩
行压缩,表被压缩后非聚集索引需要单独压缩 --表压缩 ALTER TABLE test REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = ROW ); ...
- 给oracle用户赋权限导入导出,Oracle常用命令-用户、表空间、赋权限、导入导出...
1.1 删除表空间 drop tablespace QBKJ including contents and datafiles; 1.2 删除用户 drop user admin cascad ...
- oracle中join另一个表后会查询不出一些数据_面试必备 | 8个Hive数据仓工具面试题锦集!...
是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析 人工智能+Python | 人工智能+物联网 进入数据时代,大数据技术成为互联网发 ...
- Oracle查看用户所在的表空间
oracle 查看表空间有哪些表 select * from dba_tables where tablespace_name='表空间名',注意表空间名大小写敏感. select table_nam ...
最新文章
- export default 和export 的区别
- LeetCode 多线程 1114. 按序打印
- 程序员的恶性循环 !
- g++: command not found的解决
- LeetCode 1175. 质数排列
- linux自动异地备份,Linux本地加异地自动备份方案
- 【服务端渲染】手动部署 NuxtJs 项目
- python重命名文件夹下所有文件_Python3.4.3重命名当前文件夹下的文件
- 一个女算法程序媛的日常
- 人件管理与中国古代史:程序员豫让
- Python3爬虫中Selenium的用法详解
- 使用Weka进行数据挖掘(Weka教程三)Weka数据之Instances和Instance
- Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
- [研一上]人脸属性迁移文献梳理(1)
- 解决树莓派4B无线鼠标迟滞/延迟的问题
- 阿里云easy-excel的使用(springboot整合)
- TPAMI三维点云深度学习技术综述
- 南方科技大学计算机图灵奖,南方科技大学到底算什么级别啊?
- 组装刀片服务器,搭建刀片服务器是什么意思(刀片服务器主要用在什么地方)...
- 打造自己的LoRaWAN网关,进阶2:处理异常
热门文章
- scrapy item.py
- opencv-api minAreaRect
- flask-sqlalchemy 数据基本操作
- CVE-2020-1472复现与完整利用
- Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
- 百一测评c语言两个数求和程序,2017计算机二级C语言考前测试题与答案
- 100ml干胶能带上地铁吗_雪板能带上飞机高铁吗?该怎么带滑雪装备前往雪场?...
- SpringMVC多拦截器的执行
- 关于 HDFS Append
- iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)