一.表分区策略
①识别大表
采用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
①.、创建语句
create table p(id number)
partition by range(id)
(partition p1 values less than(100) tablespace t1,
alter table p trunc partition p1;
alter table p drop partition p1;
一 分区表技术概述
二 分区索引技术概述
⑴ 本地前缀分区索引
适用场景:
如果历史数据整理非常频繁、而且不能承受全局分区索引重建的长时间带来的索引不可用
同时、日常交易性能尚能接受、则建议设计为本地非前缀分区索引
注意:本地分区索引不能保证唯一性(除非分区键是约束的一部分)
缺点:
主要体现在数据的高可用性方面
当DROP分区后、全局分区索引则全部INVALID、除非REBULID
但数据量越大、重建索引的时间越长
一般来讲,如果需要将数据按照某个值逻辑聚集,多采用范围分区.如基于时间数据的按"年"、"月"等分区就是很典型的例子.在许多情况下,范围分区都能利用到分区消除特性( = = = between...and 等筛选条件下).
如果在表里无法找到一个合适的属性来按这个属性完成范围分区,但你又想享受分区带来的性能与可用性的提升,则可以考虑使用散列分区.(适合使用 = IN 等筛选条件)
如果数据中有一列或有一组离散值,且按这一列进行分区很有意义,则这样的数据就很适合采用列表分区.
如果某些数据逻辑上可以进行范围分区,但是得到的范围分区还是太大,不能有效管理,则可以考虑使用组合分区(范围分区+hash 或范围分区+列表分区).
create table products_table
sale_date date
partition by range(sale_date)
interval (numtoyminterval(1,'month'))
如图,取 products_table 中的 sale_date 列作为分区键创建按月自增分区;
以上就是土嘎嘎小编为大家整理的oracle表如何分区相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!