返回顶部
首页 > 资讯 > 数据库 >怎么理解Oracle表压缩
  • 913
分享到

怎么理解Oracle表压缩

2024-04-02 19:04:59 913人浏览 泡泡鱼
摘要

本篇内容介绍了“怎么理解oracle表压缩”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、官方文档说法:

本篇内容介绍了“怎么理解oracle表压缩”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、官方文档说法: 

As your database grows in size, consider using table compression. Compression saves disk space, reduces memory use in the database buffer cache, and can significantly speed query execution during reads. Compression has a cost in CPU overhead for data loading and DML. However, this cost might be offset by reduced I/O requirements

随着数据库不断增长,可以考虑使用表压缩。压缩可以节省磁盘空间,减少数据库buffer cache内存使用,并且可以加速查询。 

压缩对于数据装载和DML操作有一定的CPU消耗。然而,这些消耗可以为I/O的减少而抵消。

表的压缩对于应用程序来说是完全透明的,对于决策支持系统(DSS)、联机事务处理系统(OLTP)、归档系统(ArcHive Systems)来说表的压缩是有益处的。

我们可以压缩表空间,表和分区。如果压缩表空间,那么在默认的情况下,表空间上创建的所有表都将被压缩。只有在表执行插入、更新或批量数据载入时,才会执行数据的压缩操作。

一、表压缩的方法

Oracle提供了一下四种类型的表压缩方法:

1、Basic Compression:压缩等级High,CPU开销较小

2、OLTP Compression:压缩等级High,CPU开销较小

3、Warehouse Compression:压缩等级Higher,CPU开销较大(取决于压缩参数是Low还是High)

4、Archive Compression:压缩等级Highest,CPU开销很大(取决于压缩参数是Low还是High)

当使用Basic Compression,warehouse Compression,Archive Compression类型的压缩时,尽在发生批量数据导入时才会执行压缩。

OLTP Compression被用于联机事务处理系统,可以对任意的sql操作执行数据压缩。

Warehouse Compression和Archive Compression可以获得很高的压缩等级,因为它们采用了Hybrid Columnar(混合列)压缩技术,Hybrid Columnar采用一种改良的列的存储形式替代一行为主的存储形式。Hybird Columnar技术允许将相同的数据存储在一起,提高了压缩算法的效率。当使用混合列压缩算法时,将导致更多的CPU开销,因此这种压缩技术适用于更新不频繁的数据。

二、基本压缩特点: 

1)使用基本压缩,只有当数据是直接路径插入或更新记录(direct-path insert and updated )时才会发生压缩。 

并且支持有线的数据类型和SQL操作。

二、如何启用基本压缩? 

1)通过create table语句中指定compress条件。 

2)通过alter table .. compress; 来给现有表启用压缩; 

3)通过alter table .. nocompress; 来禁用表压缩

三、在压缩表上添加和删除列

在压缩表上添加和删除列有如下限制:

1、对于compression basic类型的压缩,不能对新添加的列指定默认值

--测试过程:

TEST@ r7>select * from empd1;
no rows selected
TEST@ r7>select table_name,compression,compress_for from user_tables where table_name='EMPD1';
TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
EMPD1                          DISABLED
TEST@ r7>INSERT INTO EMPD1 SELECT * FROM SCOTT.EMP WHERE ROWNUM<10;
9 rows created.
TEST@ r7>COMMIT;
Commit complete.
TEST@ r7>alter table empd1 compress basic;
Table altered.
TEST@ r7>select table_name,compression,compress_for from user_tables;
TABLE_NAME                     COMPRESS COMPRESS_FOR
------------------------------ -------- ------------
TBUSINFLAG                     ENABLED  OLTP
TCOMBI                         ENABLED  OLTP
TCURRENTS                      ENABLED  OLTP
TENTRUSTDIRECTION              ENABLED  OLTP
TINSTRUCTION                   ENABLED  OLTP
TINSTRUCTIONSTOCK              ENABLED  OLTP
TOPERATOR                      ENABLED  OLTP
TOUTCONFIRM                    ENABLED  OLTP
TREALDEAL                      ENABLED  OLTP
TSTOCKINFO                     ENABLED  OLTP
TUNITSTOCK                     ENABLED  OLTP
CUSTOMERS                      ENABLED  OLTP
SYS_EXPORT_FULL_01             ENABLED  OLTP
A                              ENABLED  OLTP
B                              ENABLED  OLTP
EMPD1                          ENABLED  BASIC
16 rows selected.
TEST@ r7>desc empd1;
 Name                    Null?    Type
 ----------------- -------- -------------
 EMPNO                      NUMBER(4)
 ENAME                      VARCHAR2(10)
 JOB                        VARCHAR2(9)
 MGR                        NUMBER(4)
 HIREDATE                   DATE
 SAL                        NUMBER(7,2)
 COMM                       NUMBER(7,2)
 DEPTNO                     NUMBER(2)
--添加有默认值的字段:不支持
TEST@ r7>alter table empd1 add (test varchar(10) default 'sysdate');
alter table empd1 add (test varchar(10) default 'sysdate')
                       *
ERROR at line 1:
ORA-39726: unsupported add/drop column operation on compressed tables
--添加没有默认值得字段:支持
TEST@ r7>alter table empd1 add (test varchar(10));
Table altered.
--对于compression basic类型的压缩,不支持列的删除操作
TEST@ r7>alter table empd1 drop column test;
alter table empd1 drop column test
                              *
ERROR at line 1:
ORA-39726: unsupported add/drop column operation on compressed tables

2、对于OLTP类型的压缩,如果为新添加的列指定默认值,则该列必须被设置为 NOT NULL,为可以为空的列添加默认值不被支持。

对于这一点,做个测试。对于OLTP类型的压缩,该列为空也可以被添加。

TEST@ r7>alter table empd1 add (test1 varchar(10) default 'sysdate');
Table altered.

对于OLTP类型的压缩,能够支持列的删除操作,但是在数据库内部将列标记为unused状态,避免长时间的解压和重新压缩的操作。

TEST@ r7>alter table empd1 drop column test;
Table altered.
SQL> ALTER TABLE EMPD1 DROP UNUSED COLUMNS;     --删除unused字段

“怎么理解Oracle表压缩”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么理解Oracle表压缩

本文链接: https://lsjlt.com/news/65073.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解Oracle表压缩
    本篇内容介绍了“怎么理解Oracle表压缩”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、官方文档说法:...
    99+
    2024-04-02
  • oracle 11G表压缩
      最近一套生产库表空间一直告警在90%以上,但的磁盘硬件资源又不足,整个库已经达到26T。库里存储了近4年的数据,与业务沟通说历史数据基本上不会做操作,但是又不能归档,所以想到了压缩表来节省表空...
    99+
    2024-04-02
  • Oracle中怎么实现表的压缩
    在Oracle中,可以通过使用表压缩功能来实现表的压缩。表压缩是一种数据压缩技术,可以减小表占用的存储空间,提高数据库性能。 表压缩...
    99+
    2024-04-19
    Oracle
  • Oracle表的压缩是怎样的
    本篇文章为大家展示了Oracle表的压缩是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 随着数据库的增长,我们可以考虑使用or...
    99+
    2024-04-02
  • oracle如何实现压缩表
    这篇文章给大家分享的是有关oracle如何实现压缩表的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。表压缩是如何工作的在Orcle9i第2版中,表压缩特性通过删除在数据库表中发现的...
    99+
    2024-04-02
  • 怎么在Linux中压缩及解压缩文件
    这篇文章主要讲解了“怎么在Linux中压缩及解压缩文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中压缩及解压缩文件”吧!对文件进行压缩,可以通过使用较少的字节对文件中的数...
    99+
    2023-06-16
  • Linux压缩和解压缩命令怎么使用
    在Linux中,使用以下命令来压缩和解压缩文件和目录:1. 压缩文件:- `gzip`:使用gzip算法压缩文件,生成`.gz`后缀...
    99+
    2023-09-29
    Linux
  • oracle两个压缩包如何解压
    要解压Oracle两个压缩包,你可以按照以下步骤进行操作: 首先,确保你的计算机上已经安装了解压缩软件,比如WinRAR或7-Z...
    99+
    2024-04-08
    oracle
  • pgsql怎么查表是否压缩
    要查看表是否压缩,可以使用以下命令: SELECT schemaname, tablename, compresslevel...
    99+
    2024-05-14
    pgsql
  • Linux怎么解压、压缩gz文件
    这篇文章主要介绍“Linux怎么解压、压缩gz文件”,在日常操作中,相信很多人在Linux怎么解压、压缩gz文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux怎么解压、压缩gz文件”的疑惑有所帮助!...
    99+
    2023-06-28
  • Redis怎么实现数据的压缩和解压缩
    Redis可以通过以下方式实现数据的压缩和解压缩: 使用Redis的压缩功能:Redis可以通过配置选项来启用对数据的压缩功能。...
    99+
    2024-05-07
    Redis
  • 详解mysql表数据压缩
    目录【第一部分】一、表压缩概述:二、使用表的压缩三、InnoDB表的压缩优化1、何时用压缩表2、数据特性及压缩率3、数据库压缩和应用程序压缩4、工作负载特性和压缩率四、INNODB表...
    99+
    2024-04-02
  • 怎么在java中利用压缩流实现压缩与解压
    本篇文章给大家分享的是有关怎么在java中利用压缩流实现压缩与解压,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程...
    99+
    2023-06-14
  • go怎么压缩和解压zip文件
    本篇内容主要讲解“go怎么压缩和解压zip文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go怎么压缩和解压zip文件”吧!压缩zipfunc Zip(dest strin...
    99+
    2023-07-02
  • 电脑怎么解压文件压缩包
    这篇“电脑怎么解压文件压缩包”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑怎么解压文件压缩包”文章吧。解压文件压缩包的方...
    99+
    2023-07-02
  • 怎样在Linux中压缩和解压缩文件
    这期内容当中小编将会给大家带来有关怎样在Linux中压缩和解压缩文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压...
    99+
    2023-06-16
  • Linux中常用的压缩和解压缩命令整理
    本篇内容主要讲解“Linux中常用的压缩和解压缩命令整理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中常用的压缩和解压缩命令整理”吧!文件后缀解压/解包压缩/打包备注*.tartar...
    99+
    2023-06-13
  • 利用Java怎么对文件进行压缩与解压缩
    今天就跟大家聊聊有关利用Java怎么对文件进行压缩与解压缩,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。用java压缩/解压文件: import java.io.*; im...
    99+
    2023-05-31
    java ava
  • Keka for Mac压缩解压工具怎么用
    今天就跟大家聊聊有关Keka for Mac压缩解压工具怎么用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Keka  for Mac是一...
    99+
    2024-04-02
  • innodb中怎么启用表压缩功能
    本篇文章为大家展示了innodb中怎么启用表压缩功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1,innodb_file_per_table默认关闭[root@...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作