探讨Oracle表压缩技术及应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
探讨Oracle表压缩技术及应用

探讨Oracle表压缩技术及应用 Create table sale_detail_record_partition( Department_id number(3), Employee_id number(5), Year_id number(4), Month_id number(2), Week_id number(2), Day_id number(3), Money_num number(10,2) ) Partition by range(Year_id) ( Partition sale_before_2004 Values less than(2004) compress, Partition sale_2004 Values less than(2005) compress, Partition sale_2005 Values less than(2006) ); 在表空间级别上定义压缩属性。当压缩属性被定义在表空间上时,在其中创建表时,该特性将被表继承,但表级别的压缩属性会覆盖表空间的压缩属性。具体实现语法如下: Create tablespace sales_tablespace data file ‘D:\oracle10g\oradata\oracle10\sal_tab_file1.ora’ size 5M default compress; 或通过alter tablespace语句修改已存在的表空间的压缩属性。 Alter tablespace sales_tablespace data file ‘D:\oracle10g\oradata\oracle10\sal_tab_file1.ora’ size 5M default nocompress; 相关查询 查看一个表是否是压缩表 Select compression from user_tables where lower(table_name)=’sale_detail_record’; COMPRESSION 查看一个表空间是否被压缩可以通过查询dba_tablespaces数据字典 Select def_tab_compression from dba_tablespaces where lower(tanlespace_name)=’sales_tablespace’; DEF_TAB_COMPRESSION 查看各分区表的压缩属性 Select table_name,partition_name,compression from user_tab_partitions TABLE_NAME PARTITION_NAME COMPRESSION 表压缩实现 表被定义或修改为有压缩属性后,并不意味数据就已经被压缩。数据压缩实际上是发生在往一个表装载或插入数据的过程中,而且要使数据能够被压缩,必须正确地使用批量装载或插入。具体有以下4种操作。 在SQL*Loader中使用直接路径装载数据。 执行Create table … as select语句。 执行并行插入语句。 执行串行插入语句并且使用append提示。 SQL语句实例分别如下: Create table sale_detail_record_bak compress as select * from sale_detail_record; Insert /*append*/ into sale_detail_record_bak select * from sale_detail_record; Insert /* +parallel (sale_detail_record_bak,4) */ into sale_detail_record_bak select * from sale_detail_record; 对于一个已经存有数据的非压缩表(或压缩表),可以通过如下语句压缩其中的数据,同时修改表的压缩属性: Alter table sale_detail_record move compress; 这种方法可以用来弥补装载或插入数据时,因不符合压缩条件而未被压缩的表或数据。 如果要解除一个表的压缩属性,并同时解压缩其中数据,则执行下列语句: Alter table sale_detail_record move uncompress; 压缩率测试 大量实例测试表明,Oracle引进表压缩技术能大比例减少数据的占用空间,但不同的应用类型、装载数据的语法、数据块大小、存储参数等因素会导致不同的压缩率。因此有必要对实际系统表的潜在压缩率进行量化测试。笔者编写了一个测试非压缩表潜在压缩率的程序,使用方法如下: Set serveroutput on; Execute test_

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档