网站首页 > 文章中心 > 其它

oracle怎么压缩分区

作者:小编 更新时间:2023-10-09 17:45:56 浏览量:189人看过

Oracle 高效的分区消除

①高效的分区消除

分区表存在的最大意义在于,可以有效地做到分区消除

分区表其实是将一个大对象分成了多个小对象

测试针对普通表的增加了 area_code 条件的相同 SQL 语句:

分区表应用在大表上更合适,至少要大于100万条记录的表方可考虑.

oracle11g怎么建立压缩表

在数据量变的很大的情况下,可以考虑表压缩,减少磁盘的存储,减少buffer cache的消耗,加快查询的速度,压缩需要在数据加载和dml的时候消耗一些cpu.表压缩对于应用是透明的.

你可以在表空间,表或分区级别指定压缩,如果在表空间级别指定压缩,那么这个表空间中的所有表默认都是压缩的.

压缩会发生在数据插入,更新或批量加载到表时.有几种类型的压缩.基本的,oltp的,dss的,归档的.他们的cpu消耗见文档.

当使用基本压缩,数据仓库压缩,或归档压缩的时候,压缩仅仅是在批量加载到一个表的时候发生.当你使用了oltp压缩,压缩发生在数据插入,更新,批量加载.

如果你使用了alter table命令让表启用压缩,那么对于已存在的数据是不受影响的,只有在启用压缩后的插入,或更新会受影响.也可以使用ALTER TABLE...NOCOMPRESS将一个表设置成非压缩,对于已经的压缩的表是没有影响的,压缩的数据还是压缩的,只是新插入的数据是不被压缩.

创建一个oltp压缩类型的表

CREATE TABLE orders ?... ?COMPRESS FOR OLTP;

CREATE TABLE sales_history ?... ?COMPRESS BASIC;

CREATE TABLE sales_history ?... ?COMPRESS;

下面的表是一个数据仓库压缩类型的表,对于经常查询,并且没有dml的表适用.

CREATE TABLE sales_history ?... ?COMPRESS FOR QUERY;

创建一个归档压缩类型的表

CREATE TABLE sales_history ?... ?COMPRESS FOR ARCHIVE;

表可以包含压缩和非压缩的分区,并且不同的分区的压缩的类型可以是不同的,如果在分区上指定的压缩的类型与表上指定的压缩的类型不同,那么分区上的优先.

查看表是否是压缩的,及分区是否是压缩的.

SQL SELECT table_name, compression, compress_for FROM user_tables;

SELECT table_name, partition_name, compression,compress_for

FROM user_tab_partitions;

查看表中的行是什么压缩类型

SELECT DECODE(DBMS_COMPRESSION.GET_COMPRESSION_TYPE(

ownname = 'HR',

tabname = 'EMPLOYEES',

row_id ?= 'AAAVEIAAGAAAABTAAD'),

①., ?'No Compression',

'Unknown Compression Type') compression_type

FROM DUAL;

修改压缩的级别

如果表是分区表,使用在线重定义可以修改表的压缩级别.如果表是分分区表,那么可以使用alter table ..move.. compress for语句修改表的压缩级别,这个语句会阻塞dml操作.

对于压缩表的限制:

①.基本压缩,你不能为添加的列指定默认的值.删除列是不被支持的.

在上面的描述中可以看到对于基本类型的压缩,没有使用直接路径插入的行及更新的行是不会被压缩的.对于我们的oltp系统基本是没有用处的,只测试下oltp的压缩方式,这种方式对于没有使用直接路径插入的行及被更新的行都会压缩.

COUNT(*)

SQL set serveroutput on

ORACLE表分区

一.表分区策略

①识别大表

采用ANALYZE TABLE语句进行分析,然后查询数据字典获得相应的数据量.

可根据月份,季度以及年份等进行分区;

要对每个表空间的大小进行估计

二.创建表分区

a.创建范围分区的关键字是'RANGE'

①范围分区

create table ware_retail_part --创建一个描述商品零售的数据表

(

id integer primary key,--销售编号

retail_date date,--销售日期

)

partition by range(retail_date)

);

三.创建索引分区

索引分区分为本地索引分区和全局索引分区,全局索引不反应基础表的结构,要分区只能进行范围分区.

创建索引分区要参照表分区

四.分区技术简介

优点:

①减少维护工作量

五,管理表分区

①添加表分区

ALTER TABLE...ALTER PARATITION

ALTER TABLE...DROP PARTITION

删除分区时,里面的数据也会被删除.

-创建表和分区

create table sales--创建一个销售记录表

id number primary key,--记录编号

saledate date--销售日期

partition by range(saledate)--按照日期分区

--第一季度数据

--第二季度数据

--第三季度数据

--第四季度数据

--创建局部索引

local(

partition part_seal tablespace tbsp_1,

--并入分区

--重建局部索引

六.管理索引分区

删除索引:DROP PARTITION

重建分区:REBUILT PARTITION

更名索引分区:RENAME PARTITION

分割索引分区:SPLIT PARTITION

oracle 分区交换难道不支持索引压缩?

不应该吧,我这边版本Oracle11g,测试没有问题.步骤如下:

create?index?objects1_idx?on?objects1?(object_id)?compress?1;

object_id?number,

partition?by?range(object_id)

以上就是土嘎嘎小编为大家整理的oracle怎么压缩分区相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章