Oracle 分区索引介绍和实例演示
SQL> create tablespace tbs3 datafile '/u02/database/SYBO2/oradata/tbs3.dbf' size 10m autoextend on;
有前缀索引:l_lookup_id lookup.id%TYPE;
SQL> grant dba to leshami;
--添加主键约束
全局分区索引时分区表和全局索引的分区机制不一样,在创建时必须定义分区键的范围和值。
ELSIF MOD(i, 2) = 0 THEN
--插入数据
--创建演示需要用到的表空间
分区索引(或索引分区)主要是针对分区表而言的。随着数据量的不断增长,普通的堆表需要转换到分区表,其索引呢,则对应的转换到分区索引。分区索引的好处是显而易见的。就是简单地把一个索引分成多个片断,在获取所需数据时,只需要访问更小的索引片断(块)即可实现。同时把分区放在不同的表空间可以提高分区的可用性和可靠性。本文主要描述了分区索引的相关特性并给出演示示例。
无前缀索引即没有把分区键的前导列作为索引的前导列。缺省情况下,创建本地索引时,如未指定索引存放表空间,会自动将本地索引存放到数据所在分区定义时的表空间。
--未指定索引分区及存储表空间情形下创建索引
BEGIN
END IF;
id NUMBER(10),
l_create_date := ADD_MONTHS(SYSDATE, -24);
INSERT INTO big_table (id, created_date, lookup_id, data)
----------------------------------------------------------------
Index created.
b、分区索引可以分为本地分区索引以及全局分区索引 默认情况下全局索引对于分区增加,截取,删除,分割等都必须重建或修改时指定update global indexs。SQL> create tablespace tbs2 datafile '/u02/database/SYBO2/oradata/tbs2.dbf' size 10m autoextend on;
有前缀索引包含了分区键,即分区键列被包含在索引中。本地分区索引:
SQL> create tablespace tbs_tmp datafile '/u02/database/SYBO2/oradata/tbs_tmp.dbf' size 10m autoextend on; END LOOP;PARTITION BY RANGE (created_date)
l_create_date := SYSDATE;
SQL> create tablespace tbs1 datafile '/u02/database/SYBO2/oradata/tbs1.dbf' size 10m autoextend on;
全局分区索引多应用于oltp系统中。CREATE TABLE lookup (
FOR i IN 1 .. 10000 LOOP
无前缀索引:
-- 创建一个lookup表
SQL> create user leshami identified by xxx;
IF MOD(i, 3) = 0 THENl_create_date := ADD_MONTHS(SYSDATE, -12);
--填充数据到分区表
SQL> create tablespace idx1 datafile '/u02/database/SYBO2/oradata/idx1.dbf' size 10m autoextend on;
data VARCHAR2(50)PARTITION big_table_2013 VALUES LESS THAN (TO_DATE('01/01/2014', 'DD/MM/YYYY')) tablespace tbs2,
END;
本地索引的分区机制和表的分区机制一样,本地索引可以是是B树索引或位图索引。
--环境
本地索引支持分区独立性,因此对于这些单独的分区增加,截取,删除,分割,脱机等处理无需同时删除或重建。
本地索引多应用于数据仓库环境中。
前缀和非前缀索引都可以支持索引分区消除,前提是查询的条件中包含索引分区键。
l_create_date DATE;
本地索引是对单个分区的,每个分区索引只指向一个表分区,为对等分区。
无前缀索引仅仅支持本地分区索引。
l_lookup_id := 3;
全局索引分区中,一个分区索引能指向n个表分区,同时,一个表分区,也可能指向n个索引分区。
SQL> create tablespace idx3 datafile '/u02/database/SYBO2/oradata/idx3.dbf' size 10m autoextend on;
SQL> select * from v$version where rownum<2;SQL> select index_name, partitioning_type, partition_count from user_part_indexes;
全局分区索引在创建时应指定Global关键字且全局分区索引只能是B树索引。BANNER
2、本地分区索引演示
复制代码 代码如下:
(PARTITION big_table_2012 VALUES LESS THAN (TO_DATE('01/01/2013', 'DD/MM/YYYY')) tablespace tbs1,ELSE
id NUMBER(10),
DECLARE
全局分区索引只按范围或者散列hash分区。
INSERT INTO lookup (id, description) VALUES (1, 'ONE');
CONSTRAINT lookup_pk PRIMARY KEY (id)
COMMIT;
CREATE TABLE big_table (
lookup_id NUMBER(10),
SQL> conn leshami/xxx
SQL> alter user leshami default tablespace tbs_tmp;
本地分区索引信息的存放依赖于父表分区。也就是说对于本地索引一定是基于分区表创建的。
c、有前缀索引和无前缀索引
a、分区索引的几种方式:表被分区而索引未被分区;表未被分区,而索引被分区;表和索引都被分区
l_lookup_id := 2;
全局索引可以分区,也可以是不分区索引,全局索引必须是前缀索引,即索引列必须包含分区键。
PARTITION big_table_2014 VALUES LESS THAN (MAXVALUE)tablespace tbs3 ) ;
);
ALTER TABLE lookup ADD (
COMMIT;
1、分区索引的相关概念
全局分区索引: created_date DATE,description VARCHAR2(50)
INSERT INTO lookup (id, description) VALUES (2, 'TWO');
SQL> create tablespace idx2 datafile '/u02/database/SYBO2/oradata/idx2.dbf' size 10m autoextend on;
l_lookup_id := 1;);
有前缀索引支持本地分区索引以及全局分区索引。
/ SQL> CREATE INDEX bita_created_date_i ON big_table(created_date) LOCAL; VALUES (i, l_create_date, l_lookup_id, 'This is some data for ' || i);
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
本地和全局分区索引又分为两个子类型即有前缀索引和无前缀索引。
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://www.juheyunku.com/sql/oracle/1191.shtml
相关文章
热门TAG
命令 权重 外链 企业网站 白帽 php 织梦教程 dedecms修改内容 javascript 织梦 功能 标签 调用 详解 服务器 网站流量 实例解析 Dedecms 织梦cms HTML tags标签 python jquery教程 jquery windows SEO优化 蜘蛛 搜索引擎 网站收录 JSP最新文章
-
Window下Oracle Database 11g 发行
时间:2020-12-29
-
Oracle如何实现like多个值的
时间:2020-12-29
-
maven添加oracle依赖失败问题
时间:2020-12-29
-
OracleRAC基本概念及入门
时间:2020-12-29
-
Azure File Storage 基本用法
时间:2020-12-26
-
Oracle 权限(grant revoke)
时间:2020-12-26
-
Azure Queue Storage 基本用法
时间:2020-12-26
-
如何对比迁移前后的Orac
时间:2020-12-26
热门文章
-
Azure Queue Storage 基本用法 Azure Storage 之
时间:2020-12-26
-
Oracle存储过程编程详解
时间:2020-12-07
-
win10下oracle 11g安装图文教程
时间:2020-12-25
-
oracle 数据库学习 基本结构介绍
时间:2020-12-13
-
Azure File Storage 基本用法 Azure Storage 之 F
时间:2020-12-26
-
windows使用sqlpus连接oracle 数据库的教程图
时间:2020-12-25
-
Window下Oracle Database 11g 发行版2安装教程
时间:2020-12-29
-
Oracle解锁的方式介绍
时间:2020-12-14
-
linux下oracle设置开机自启动实现方法
时间:2020-12-13
-
Oracle学习记录之使用自定义函数和触发器
时间:2020-12-07
