千家信息网

压缩表

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,通常我们可以使用 COMPRESS子句或COMPRESS BASIC子句来启用表的基本压缩特性(COMPRESS子句和COMPRESS BASIC子句的作用是相同的),从性能的角度来说,使用基本压缩的
千家信息网最后更新 2024年11月22日压缩表

通常我们可以使用 COMPRESS子句或COMPRESS BASIC子句来启用表的基本压缩特性(COMPRESS子句和COMPRESS BASIC子句的作用是相同的),从性能的角度来说,使用基本压缩的主要优势在于,如果数据压缩后再加载,接下来的任何 I/O操作都会使用更少的资源,因为在读写数据时需要访问更少的数据块。一般来说,存储大量字符数据的表适合使用基本压缩。Oracle的基本压缩属性对于正常的DML语句,例如INSERTUPDATEMERGEDELETE没有影响。如果你希望对所有DML语句起作用,那么就要考虑使用OLTP压缩。COMPRESS FOR OLTP子句为所有DML操作启用压缩。OLTP压缩并不会在数据插入或修改时马上压缩,而是在数据块中的修改达到一定阈值时,成批次来进行压缩。当达到阈值时,所有未压缩的数据行将会同时进行压缩。需要进行压缩的阈值由一种内部算法(你并不能控制)决定。

同样也能够在分区和表空间级别上指定基本压缩。位于使用COMPRESS子句创建的表空间中的所有表,默认都会启用基本压缩。

可以查询相应的DBA/ALL/USER_TABLES视图的compression来验证是否对一张表启用了压缩。查询dba_tablespace视图中的tab_compressioncompress_for列检查表空间是否启用了压缩。

创建压缩表:

create table regs (reg_id number,reg_name varchar2(2000))compress;

create table regs (reg_id number,reg_name varchar2(2000))compress for oltp;

压缩表(之后的数据启用):

SQL> alter table regs_dss compress;

SQL> alter table regs compress for oltp;


压缩表中已有数据:

SQL> alter table regs_dss move compress;

SQL> alter table regs_dss move compress for oltp;

解压缩:

SQL> alter table regs_dss nocompress;

SQL> alter table regs_dss nocompress for oltp;


解压缩表中已有数据:

SQL> alter table regs_dss move nocompress;

SQL> alter table regs_dss move nocompress for oltp;


创建压缩表空间

CREATE TABLESPACE comp_data

DATAFILE 1/oraOl/dbf Ile/0liR2/comp_dataOl.dbf'

SIZE 500M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 512K

SEGMENT SPACE MANAGEMENT AUTO

DEFAULT COMPRESS;/ DEFAULT COMPRESS for oltp;

修改已有的表空间,设置其默认的压缩度:

SQL> alter tablespace comp_data default compress;

1) 创建测试表并插入数据

SQL> CREATE TABLE t (ID NUMBER,addtime DATE,mark varchar2(10) default null);

SQL> BEGIN

FOR i IN 1 .. 60000

LOOP

INSERT INTO t(id,addtime)

VALUES (i, sysdate);

COMMIT;

---DBMS_LOCK.sleep (0.1);

END LOOP;

END;

/

2) 查看对象大小

SQL> select segment_name, bytes/1024/1024 from dba_segments where owner='ADMIN';

SEGMENT_NAME BYTES/1024/1024

------------------------- ---------------

CHAINED_ROWS .0625

T 5.8125

3) 使用表压缩功能创建

SQL> create table t_com compress as select * from t;

SQL> select segment_name, bytes/1024/1024 from dba_segments where owner='ADMIN';

SEGMENT_NAME BYTES/1024/1024

------------------------- ---------------

T_COM 3

CHAINED_ROWS .0625

T 5.8125

t_com启用压缩后比t小了将近一半的数据量。

数据 子句 空间 阈值 作用 视图 语句 查询 相同 接下来 一般来说 优势 功能 同时 大小 字符 对象 属性 性能 批次 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 一个超级大的服务器多少钱 腾讯云轻量服务器制作小程序教程 三级能考网络技术吗 网络安全我维护资料 数据库发展与主流数据库 民大附中网络安全宣传班会 浙江明讯网络技术有限公司盖章 大疆司空2服务器在那个国家 学软件开发怎么找培训机构 软件开发中心还是银行柜台 网络安全倡议的征文 河南本末互联网科技有限 5g网络技术白皮书下载 网站服务器操作系统 proliant服务器特点 诺必行词典数据库 天津名优网络技术服务信息推荐 外国服务器的网站 天津服务器虚拟化优化虚拟主机 宣传部网络安全自查报告 删除php数据库 网络安全管理重要 山东济南挪车二维码系统软件开发 街头篮球云服务器跨网 赣州圣涛网络技术有限公司 中职网络技术选择题 小商店销售管理数据库代码 杰耀网络技术有限公司 网络安全会议工作简报 俄罗斯国家网络安全专业
0