使用压缩前,我们可以估算压缩能有多大效果。

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— 估计表压缩效应相关推荐

  1. mysql innodb 1017_MySQL InnoDB表压缩

    MySQL InnoDB表压缩 文件大小减小(可达50%以上) ==> 查询速度变快(count * 约减少20%以上时间) 如何设置mysql innodb 表的压缩: 第一,mysql的版本 ...

  2. MySQL InnoDB表压缩

    MySQL InnoDB表压缩 文件大小减小(可达50%以上) ==> 查询速度变快(count * 约减少20%以上时间) 如何设置mysql innodb 表的压缩: 第一,mysql的版本 ...

  3. mysql 压缩表_MySQL InnoDB 表压缩(行格式压缩)

    MySQL InnoDB支持数据压缩,有两种数据压缩方式,第一种为表压缩,通常也称之为行格式压缩,另外一种是页压缩,页压缩对操作系统及文件系统有一定的要求.本文主要介绍表压缩(行格式压缩)的原理及使用 ...

  4. MySQL中的表压缩功能

    MySQL版本:8.0.22 os:linux ubuntu 语言:c++.c 在MySQL中支持3种类型的表压缩,依次为:传统压缩.TPC压缩.字典压缩. 第一种:传统压缩 传统的表压缩方式是在My ...

  5. [Hive] Hive表压缩

    目录 (1)压缩概述 (2)开启Map输出阶段压缩 (3)开启Reduce输出阶段压缩 (4)创建表时指定压缩格式 (1)压缩概述 MR支持的压缩编码,表1 为了支持多种压缩/解压缩算法,Hadoop ...

  6. sqlserver表压缩

    行压缩,表被压缩后非聚集索引需要单独压缩 --表压缩 ALTER TABLE test REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = ROW ); ...

  7. 给oracle用户赋权限导入导出,Oracle常用命令-用户、表空间、赋权限、导入导出...

    1.1   删除表空间 drop tablespace QBKJ including contents and datafiles; 1.2   删除用户 drop user admin cascad ...

  8. oracle中join另一个表后会查询不出一些数据_面试必备 | 8个Hive数据仓工具面试题锦集!...

    是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析  人工智能+Python | 人工智能+物联网 进入数据时代,大数据技术成为互联网发 ...

  9. Oracle查看用户所在的表空间

    oracle 查看表空间有哪些表 select * from dba_tables where tablespace_name='表空间名',注意表空间名大小写敏感. select table_nam ...

最新文章

  1. export default 和export 的区别
  2. LeetCode 多线程 1114. 按序打印
  3. 程序员的恶性循环 !
  4. g++: command not found的解决
  5. LeetCode 1175. 质数排列
  6. linux自动异地备份,Linux本地加异地自动备份方案
  7. 【服务端渲染】手动部署 NuxtJs 项目
  8. python重命名文件夹下所有文件_Python3.4.3重命名当前文件夹下的文件
  9. 一个女算法程序媛的日常
  10. 人件管理与中国古代史:程序员豫让
  11. Python3爬虫中Selenium的用法详解
  12. 使用Weka进行数据挖掘(Weka教程三)Weka数据之Instances和Instance
  13. Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
  14. [研一上]人脸属性迁移文献梳理(1)
  15. 解决树莓派4B无线鼠标迟滞/延迟的问题
  16. 阿里云easy-excel的使用(springboot整合)
  17. TPAMI三维点云深度学习技术综述
  18. 南方科技大学计算机图灵奖,南方科技大学到底算什么级别啊?
  19. 组装刀片服务器,搭建刀片服务器是什么意思(刀片服务器主要用在什么地方)...
  20. 打造自己的LoRaWAN网关,进阶2:处理异常

热门文章

  1. scrapy item.py
  2. opencv-api minAreaRect
  3. flask-sqlalchemy 数据基本操作
  4. CVE-2020-1472复现与完整利用
  5. Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
  6. 百一测评c语言两个数求和程序,2017计算机二级C语言考前测试题与答案
  7. 100ml干胶能带上地铁吗_雪板能带上飞机高铁吗?该怎么带滑雪装备前往雪场?...
  8. SpringMVC多拦截器的执行
  9. 关于 HDFS Append
  10. iOS-OC-APP热更新,动态更新(仿QQ打开或关闭某个功能)