文档章节

Oracle 建索引分区小记

appoule
 appoule
发布于 2016/01/26 10:04
字数 308
阅读 24
收藏 0

表分区大家都好理解,就是对表空间做分区,分区有四种类型,By Range, By Hash, By List,还有上边三种的混合。

语法如下:

CREATE TABLE sales
  ( prod_id       NUMBER(6)
  , cust_id       NUMBER
  , time_id       DATE
  , channel_id    CHAR(1)
  , promo_id      NUMBER(6)
  , quantity_sold NUMBER(3)
  , amount_sold   NUMBER(10,2)
  )
 PARTITION BY RANGE (time_id)
 ( PARTITION sales_q1_2006 VALUES LESS THAN (TO_DATE('01-APR-2006','dd-MON-yyyy'))
    TABLESPACE tsa
 , PARTITION sales_q2_2006 VALUES LESS THAN (TO_DATE('01-JUL-2006','dd-MON-yyyy'))
    TABLESPACE tsb
 , PARTITION sales_q3_2006 VALUES LESS THAN (TO_DATE('01-OCT-2006','dd-MON-yyyy'))
    TABLESPACE tsc
 , PARTITION sales_q4_2006 VALUES LESS THAN (TO_DATE('01-JAN-2007','dd-MON-yyyy'))
    TABLESPACE tsd
 );

索引的概念也好理解,是为了加速查询的,用空间换时间,参考书本前边的索引很好理解。

语法如下:

CREATE INDEX cost_ix ON sales (amount_sold)

那么分区索引,就是分区和索引的结合了,对每个分区都做个索引。

语法如下:

CREATE INDEX cost_ix ON sales (amount_sold)
   GLOBAL PARTITION BY RANGE (amount_sold)
      (PARTITION p1 VALUES LESS THAN (1000),
       PARTITION p2 VALUES LESS THAN (2500),
       PARTITION p3 VALUES LESS THAN (MAXVALUE))
amount_sold 是分区键。

Hash的例子:

CREATE INDEX cust_last_name_ix ON customers (cust_last_name)
  GLOBAL PARTITION BY HASH (cust_last_name)
  PARTITIONS 4;

这期间会遇到Ora 02158的错误,原因是索引键和分区键不一致导致!

例如 :

CREATE INDEX cust_last_name_ix ON customers (cust_last_name)
  GLOBAL PARTITION BY Hash(orderNo)
  PARTITIONS 4;


© 著作权归作者所有

appoule
粉丝 0
博文 8
码字总数 1434
作品 0
南京
私信 提问
oracle的数据处理之insert,delete,truncate partition,bulk collect into

我的测试方法 测试环境t4400+2G+5400转/秒硬盘。表大小248MB,1997760条数据。 建立一个基表: create table a_object asselect objectname,objecttype,created,rownum+49944 id from dba_ob...

snowhill
2013/12/26
0
0
Oracle数据库中分区表的操作方法

一、为什么要做分区表? 当数据量非常大,比如几百GB或是到T的时候。那查询的速度可想而知,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。 使用分区的优点:   ·增强...

深谷不见幽兰
2014/02/27
0
0
oracle 对象管理 03_索引

1、索引的创建 CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> --默认为Btree索引 ON <schema>.<table_name> (<column_name> | <expression> ASC | DESC, --expression基于函数的索引 ......

PeakFang-BOK
2018/10/13
0
0
Timestamp 与 Date 变量绑定与Oracle的自动分区

好久没有更新博客了,其实是工作中遇到的很多问题在Google上都能找到答案,也就没有记录下来的必要了。今天主要想聊一下在实际的系统中遇到的Oracle数据库的问题,希望对大家有一点点帮助就好...

Pharosa
2014/07/25
0
0
oracle 分区表 分区索引

在oracle10g数据库中按天建立分区,一天建一个分区,如何在分区表上建分区索引。分区表是动态生成的。那分区索引如何动态生成?

Alex思想者
2012/01/12
178
0

没有更多内容

加载失败,请刷新页面

加载更多

etcd 在超大规模数据场景下的性能优化

作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广,很多地方都用到了它,例如kubernete...

zhaowei121
24分钟前
2
0
MYSQL主从介绍

MYSQL软件概念 MYSQL是一款数据库,关系型数据库系统; MYSQL主要用于存放:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息等; MYSQL在WEB架构...

寰宇01
27分钟前
2
0
org.apache.cxf.interceptor.Fault: null

出现这个异常的原因:json字符串为null 所以会出现这个错误。需要加上条件判断。 如果不是这个原因,可以参考: https://blog.csdn.net/rshw123456/article/details/8001677...

嘿嘿嘿IT
27分钟前
1
0
gradle控制so库的输出位置

gradle.taskGraph.beforeTask { task -> String abi = "lib/armeabi/" def TASK_NAME = "transformNativeLibsWithStripDebugSymbolFor" String buildType = "debug" //S......

Gemini-Lin
28分钟前
3
0
AndroidL 开机展示Keyguard锁屏机制初探

目录 目录 锁屏时序图 开机启动到PhoneWindowManager的systemReady方法 锁屏加载流程 PhoneWindowManager KeyguardServiceDelegate KeyguardServiceWrapper KeyguardService KeyguardViewMe......

天王盖地虎626
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部