9i10g11g编程艺术——分区
来源:互联网 发布:image lab软件下载 编辑:程序博客网 时间:2024/05/21 06:26
一、表分区机制
行移动的开销比正常的update昂贵得多。因此,如果构建的系统会频繁修改分区键,而且这种修改会导致分区移动,这实在是一个糟糕的设计决策。
1、区间分区
分区区间是严格小于某个值而不是小于或等于某个值。
CREATE TABLE range_example
( range_key_column date ,
data varchar2(20)
)
PARTITION BY RANGE (range_key_column)
( PARTITION part_1 VALUES LESS THAN(to_date('01/01/2010','dd/mm/yyyy')),
PARTITION part_2 VALUES LESS THAN(to_date('01/01/2011','dd/mm/yyyy')),
PARTITION part_3 VALUES LESS THAN(MAXVALUE)
)
/
2、散列分区
oracle会对分区键应用一个散列函数,以此确定数据应当放在N个分区中的哪一个分区中。oracle建议N是2的一个幂(2、4、8、16等)
为表选择的散列键应当是唯一的一个列或一组列,或者至少有足够多的相异值,以便行能在多个分区上很好(均匀的)分布。
CREATE TABLE hash_example
( hash_key_column date,
data varchar2(20)
)
PARTITION BY HASH (hash_key_column)
( partition part_1 tablespace p1,
partition part_2 tablespace p2
)
/
3、列表分区
列表分区可以根据离散的值列表来指定一行位于哪个分区。
一旦列表分区表有一个DEFAULT分区,就不能再向这个表中增加更多的分区了。
create table list_example
( state_cd varchar2(2),
data varchar2(20)
)
partition by list(state_cd)
( partition part_1 values ( 'ME', 'NH', 'VT', 'MA' ),
partition part_2 values ( 'CT', 'RI', 'NY' )
)
/
4、间隔分区
不再需要预先为数据创建分区,而是在插入数据时让数据自己创建分区。
分区列应当能够增加number或interval类型数值。
可以使用alter将一个现有的区间表修改为间隔分区。
create table audit_trail
( ts timestamp,
data varchar2(30)
)
partition by range(ts)
interval (numtoyminterval(1,'month')) --每个月的数据分别建立一个新分区
store in (users, example ) --创建新分区使用哪些表空间
(
partition p0 values less than (to_date('01-01-1900','dd-mm-yyyy'))
)
/
二、索引分区
1、局部索引
局部前缀索引:在这些索引中,分区键在索引定义的前几列上。
局部非前缀索引:这些索引不以分区键作为其列列表的前几列。
要使用局部非前缀索引,必须使用一个允许分区消除的查询来提高性能。
为了保证唯一性,如果想使用一个局部索引来保证这个约束,那么分区键必须包括在约束本身中。
2、全局索引
与局部索引不同,全局索引只有一类,这就是前缀全局索引。如果全局索引的索引键未从该索引的分区键开始,这是不允许的。
- 9i10g11g编程艺术——分区
- 9i10g11g编程艺术——事务
- 9i10g11g编程艺术——索引
- 9i10g11g编程艺术——数据类型
- 9i10g11g编程艺术——锁和闩
- 9i10g11g编程艺术——redo与undo
- 9i10g11g编程艺术——过程并行化
- 9i10g11g编程艺术——并发与多版本控制
- Oracle 9i & 10g编程艺术-深入数据库体系结构——第13章:分区
- “实战式”拜读《Oracle 9i&10g 编程艺术》——分区
- 编程艺术-深入数据库体系结构——第13章:分区
- 编程艺术-深入数据库体系结构——第13章:分区
- 《Oracle编程艺术》学习笔记(40)-分区的优点
- 《Oracle编程艺术》学习笔记(38)-表分区
- 《Oracle编程艺术》学习笔记(39)-索引分区
- Unix编程艺术——微型语言
- Unix编程艺术——代码生成
- Unix编程艺术——配置
- js 闭包 问题
- Image不同加载方式对内存的影响
- SQL SERVER2012新分页方式
- flex4基于datGroup自定义布局实例
- xenpaging流程详解(2)
- 9i10g11g编程艺术——分区
- Android Service 完全解析
- 我的首个win8app开发(javascript&html)(一)
- android中的所有activity间动画跳转
- strcpy sprintf memcpy 异同
- SQL2008 SQL Server 代理服务提供的凭据无效
- 程序员都不读书,但你应该读
- 海量数据查询及优化参考网址
- 云环境下的软件开发需进行重新思考