type
status
date
slug
summary
tags
category
icon
password
comment
AI summary
oracle 压缩技术(compress)
它可以极大地减少数据库表所需要的磁盘空间数量,并在某些情况下提高查询性能。
表压缩特性通过删除在数据库表中发现的重复数据值来节省空间。压缩是在数据库的数据块级别上进行的。当确定一个表要被压缩后,数据库便在每一个数据库数据块中保留空间,以便储存在该数据块中的多个位置上出现的数据的单一拷贝。这一被保留的空间被称作符号表(symbol table)。被标识为要进行压缩的数据只存储在该符号表中,而不是在数据库行本身内。当在一个数据库行中出现被标识为要压缩的数据时,该行在该符号表中存储一个指向相关数据的指针,而不是数据本身。节约空间是通过删除表中数据值的冗余拷贝而实现的。
注:压缩可以指定在表空间级,表级,分区级。如果表空间带有压缩属性那么其中的表默认也带有压缩属性,但是表级的压缩属性可以覆盖表空间级的压缩属性,表的压缩属性与分区的压缩属性的关系也是这样的。以下主要讲的是表的压缩。
对于用户或应用程序开发人员来说,表压缩的效果是透明的。无论表是否被压缩,开发人员访问表的方式都是相同的,所以当你决定压缩一个表时,不需要修改SQL查询。表压缩的设置通常由数据库管理人员或设计人员进行配置,几乎不需要开发人员或用户参与。
表压缩对于那些只加载一次但多次读取的只读表格具有最佳效果。例如,数据仓库应用程序中所用的表格特别适合于进行表压缩
下列创建一个普通表
循环插入数据
创建一个从test表建立一个新压缩表
或者,可以用ALTER TABLE语句来修改已有表的压缩属性,如下所示:
使用USER_TABLES数据字典视图并查看COMPRESSION列,如下面的例子所示:
然后执行,查看对比
- 作者:Anthony
- 链接:https://github.com/lazyBoy1998/article/oralce_compression
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。