【翻译自mos文章】关于分区索引:Global, Local, Prefixed and Non-Prefixed
来源于:
Partitioned Indexes: Global, Local, Prefixed and Non-Prefixed (文档 ID 69374.1)
APPLIES TO:
Oracle Database - Enterprise Edition - Version 8.0.3.0 and later
Information in this document applies to any platform.
PURPOSE
To differentiate between types of partitioned indexes.
SCOPE
Engineers and customers.
DETAILS
RELATED DOCUMENTS
-----------------
Oracle Server Concepts
The different types of partitioned indexes are among the least-understood
features associated with Oracle partitioned tables. This note aims to set
out the definitions of each index type.
A partitioned table may have either partitioned or non-partitioned indexes; a
non-partitioned table may have partitioned indexes. In practice, though, most
partitioned indexes will be on partitioned tables.
LOCAL INDEXES
-------------
A local index is equi-partitioned with the underlying table, so each index
partition has entries for rows in a single table partition. The partition
bounds will be the same as for the table itself.
A local index may be prefixed or non-prefixed. A prefixed index is partitioned
on the leftmost column(s) in the index. Since a local index, by definition, is
partitioned on the same key as the table, a local prefixed index will have the
table partition key as its leftmost column.
So if we use as an example the following partitioned table:
CREATE TABLE dept
(deptno NUMBER NOT NULL,
dname VARCHAR2(10) NOT NULL,
loc VARCHAR2(14))
PARTITION BY RANGE (deptno)
(PARTITION part1 VALUES LESS THAN (30),
PARTITION part2 VALUES LESS THAN (MAXVALUE));
Then a local prefixed index would be created as follows:
CREATE INDEX deptloc1_idx ON dept(deptno) LOCAL;
though we could be much more specific about partition names and tablespaces if
we chose.
Local non-prefixed indexes will not have the table's partitioning key as their
leftmost column. For example:
CREATE INDEX deptloc2_idx ON dept(loc) LOCAL;
Each partition of a non-prefixed local index will of course potentially contain the full
range of possible key values, as shown in the diagram below:
| |
------- -------
| | | |
A.. Z.. A.. Z.. (for a VARCHAR2 column)
This may look inefficient, but remember that we can search all the index
partitions in parallel.
GLOBAL INDEXES
--------------
A global index is partitioned, but along different lines from the table. It
may be on the same key, but different ranges; or it could be on a different
key altogether.
Global non-prefixed indexes are not supported. This means that the index
partitioning key must always be the leftmost index column. Anything else will
raise the error:
ORA-14038: GLOBAL partitioned index must be prefixed
Most examples of global indexes, in documentation and training material, use
the same partitioning key as for the table, with different ranges. But global
indexes are most powerful if they are partitioned on a different column from
the table. For example (recalling that the DEPT table itself is partitioned on
DEPTNO):
CREATE INDEX dept_idx ON dept(dname)
GLOBAL PARTITION BY RANGE (dname)
(PARTITION p1 VALUES LESS THAN ('N'),
PARTITION p2 VALUES LESS THAN (MAXVALUE));
To illustrate the usefulness of global indexes, imagine that we have a large
fact table partitioned on a DATE column. We frequently need to search the table
on a VARCHAR2 column (VCOL) which is not part of the table's partition key.
Assume that there are currently 12 partitions in the table.
We could use 2 possible methods:
A local non-prefixed index on VCOL:
| |
------- -------
| | (10 more | |
Values: A.. Z.. partitions here) A.. Z..
Or a global prefixed index on VCOL:
| |
------- -------
| | (10 more | |
Values: A.. D.. partitions here) T.. Z..
A global prefixed index would usually be the best choice for a unique index on
our example VCOL column. For nonunique indexes, the issue is whether we can use
parallel index searches (local non-prefixed) or whether we need a serial search,
even at the expense of the greater maintenance problems of global indexes.
【翻译自mos文章】关于分区索引:Global, Local, Prefixed and Non-Prefixed的更多相关文章
- 【翻译自mos文章】11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值
[翻译自mos文章]11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值 来源于: Default and Minimum ME ...
- 【翻译自mos文章】job 不能自己主动执行--这是另外一个mos文章,本文章有13个解决方法
job 不能自己主动执行--这是另外一个mos文章 參考原文: Jobs Not Executing Automatically (Doc ID 313102.1) 适用于: Oracle Datab ...
- 【翻译自mos文章】SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描
SYS_OP_C2C 导致的全表扫描(fts)/全索引扫描 參考原文: SYS_OP_C2C Causing Full Table/Index Scans (Doc ID 732666.1) 适用于: ...
- 【翻译自mos文章】改变数据库用户sysman(该用户是DB Control Repository 的schema)password的方法
改变数据库用户sysman(该用户是DB Control Repository 的schema)password的方法 參考原文: How To Change the Password of the ...
- 【翻译自mos文章】oracle支持在RDBMS HOME 下的 符号链接( Symbolic Links)吗?
oracle支持在RDBMS HOME 下的 符号链接( Symbolic Links)吗? 參考原文: Does Oracle support Symbolic Links in the RDBMS ...
- 【翻译自mos文章】使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法
使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法 參考原文: How to Copy asm files between remote ASM instances usi ...
- 【翻译自mos文章】oracle db 中的用户账户被锁--查看oracle用户的尝试次数
參考原文: Users Accounts Getting Locked. (Doc ID 791037.1) 事实上这个文章是为oracle 别的软件产品写的,只是涉及到user 锁定问题.那还是跟d ...
- 【翻译自mos文章】11gR2中的asm后台进程
11gR2中的asm后台进程 參考原文: ASM Background Processes in 11.2 (Doc ID 1641678.1) 适用于: Oracle Database - Ente ...
- 【翻译自mos文章】在10g中,当发生ORA-00020时,sqlplus登陆会报“connected to an idle instance”
在10g中.当发生ORA-00020时,sqlplus登陆会报"connected to an idle instance" 来源于: Sqlplus Logon Reports ...
随机推荐
- Java数据结构-------Set
三种常用Set:HashSet.LinkedHashSet.TreeSet set类继承关系: 概述 Set是对对应Map的一种封装,Set中的元素不可以重复. HashSet对应 HashMap.L ...
- 创建 router 连通 subnet
上一节我们为 Neutron 虚拟路由器配置好了 L3 agent,今天将创建虚拟路由器“router_100_101”,打通 vlan100 和 vlan101. 打开操作菜单 Project -& ...
- CodeForces Round #402 (Div.2) A-E
2017.2.26 CF D2 402 这次状态还算能忍吧……一路不紧不慢切了前ABC(不紧不慢已经是在作死了),卡在D,然后跑去看E和F——卧槽怎么还有F,早知道前面做快点了…… F看了看,不会,弃 ...
- LOJ#2131. 「NOI2015」寿司晚宴
$n \leq 500$,$2-n$这些数字,两个人挑,可以重复挑,问有几种方案中,一个人选的所有数字与另一个人选的所有数字都互质. 不像前两题那么抠脚.. 如果$n$比较小的话,可以把两个人选的数字 ...
- 兼容FF和IE的tooltip 鼠标提示框
原文发布时间为:2009-09-07 -- 来源于本人的百度文章 [由搬家工具导入] http://www.walterzorn.de/tooltip/tooltip.htm 【请见该页面】 Down ...
- C#.NET中使用存储过程的方法及其优点
原文发布时间为:2008-09-26 -- 来源于本人的百度文章 [由搬家工具导入] 一.使用存储过程的优点 作为服务器端的代码,存储过程具有以下优点:1) 存储过程是预先编译过的,是执行查询或 ...
- 基址重定位表&.reloc节区
第16-17章 - 基址重定位表&.reloc节区 @date: 2016/11/31 @author: dlive 0x01 PE重定位 若加载的是DLL.SYS文件,且在ImageBase ...
- 修改手機的 input source 及 charger 及 usb 相關電路後,容易忽略的事項
input source 及 charger 需要注意, 是否可以在關機的狀況下充電, 當然 開機充電 是一定要的. usb 部分需要注意, 是否可以在沒有電或者是有電的狀況下 download 程式 ...
- (二)Python selenium
chromedriver版本 支持的Chrome版本 v2.29 v56-58v2.28 v55-57v2.27 ...
- Linux定时关机
sudo shutdown -h +120 :两小时后关机sudo shutdown -h 23:00 :表示在23点定时关机 一.shutdown命令关机 各参数功能: -c 取消前一个shutdo ...