设为首页 加入收藏

TOP

Localprefixedindex和Localnonprefixedindex对select语句的性能影响分析(一)
2015-07-24 11:15:07 来源: 作者: 【 】 浏览:3
Tags:Localprefixedindex Localnonprefixedindex select 语句 性能 影响 分析

1、搞清楚两种索引的概念

在比较两种索引对select产生的影响之前,先要搞清楚,什么是Local prefixed index,什么叫Local nonprefixed index。其实,这两种索引,都是属于分区local索引,所以,这两种类型的索引,只有可能在分区表上才会出现。

1.1 什么是Local prefixed index

是指索引中的列,就是分区表的分区键列,或者是索引中的列,包含表的分区键值列,并且为前置位

置在索引最前部位置的本地分区索引。

例如,emp表是按时间范围分区的表,分区键列是create_time,如果分区索引中的列为create_time,

或是以(create_time,emp_no)列的本地复合索引

1.2 什么是Local nonprefixed index

在理解了什么是Local prefixedindex后,再来理解什么是Local nonprefixed index就容易了。

是指索引中的列,未包含分区表的分区键列,或者是分区键值列不在前置位置的本地分区索引

例如,emp表是按时间范围分区的表,分区键列是create_time,如果分区索引中的列为不包含create_time列,或者是象(emp_no ,create_time)这种create_time列不在索引前置位置的本地分区索引

?

2、如何查询索引的类型

视图:DBA_PART_INDEXES

LOCALITY字段:记录是否为LOCAL索引

ALIGNMENT字段:记录是PREFIXED索引还是NON_PREFIXED索引

?

3、准备与验证测试环境

3.1 创建分区表

create table tivoli.li_db_session_t(

dbname varchar2(10),

allsess number(10),

activess number(10),

timstap date)

partition by range(timstap)

(PARTITION ONEIDX_MINVALUESLESSTHAN(to_date('2010-08-01','yyyy-mm-dd')),

PARTITION ONEIDX_2010_08_1 VALUES LESS THAN(to_date('2010-09-01','yyyy-mm-dd')),

PARTITION ONEIDX_2010_08_2 VALUES LESS THAN(to_date('2010-09-15','yyyy-mm-dd')),

PARTITION ONEIDX_2010_09_1 VALUES LESS THAN(to_date('2010-10-01','yyyy-mm-dd')),

PARTITION ONEIDX_2010_09_2 VALUES LESS THAN(to_date('2010-10-15','yyyy-mm-dd')),

PARTITION ONEIDX_2010_10_1 VALUES LESS THAN(to_date('2010-11-01','yyyy-mm-dd')),

PARTITION ONEIDX_2010_10_2 VALUES LESS THAN(to_date('2010-11-15','yyyy-mm-dd')),

PARTITION ONEIDX_2010_11_1 VALUES LESS THAN(to_date('2010-12-01','yyyy-mm-dd')),

PARTITION ONEIDX_2010_11_2 VALUES LESS THAN(to_date('2010-12-15','yyyy-mm-dd')),

PARTITION ONEIDX_2010_12_1 VALUES LESS THAN(to_date('2011-01-01','yyyy-mm-dd')),

PARTITION ONEIDX_2010_12_2 VALUES LESS THAN(to_date('2011-01-15','yyyy-mm-dd')),

PARTITION ONEIDX_2011_01_1 VALUES LESS THAN(to_date('2011-02-01','yyyy-mm-dd')),

PARTITION ONEIDX_2011_01_2 VALUES LESS THAN(to_date('2011-02-15','yyyy-mm-dd')),

PARTITION ONEIDX_2011_02_1 VALUES LESS THAN(to_date('2011-03-01','yyyy-mm-dd')),

PARTITION ONEIDX_2011_02_2 VALUES LESS THAN(to_date('2011-03-15','yyyy-mm-dd')),

PARTITION ONEIDX_2011_03_1 VALUES LESS THAN(to_date('2011-04-01','yyyy-mm-dd')),

PARTITION ONEIDX_2011_03_2 VALUES LESS THAN(to_date('2011-04-15','yyyy-mm-dd')),

PARTITION ONEIDX_2011_04_1 VALUES LESS THAN(to_date('2011-05-01','yyyy-mm-dd')),

PARTITION ONEIDX_2011_04_2 VALUES LESS THAN(to_date('2011-05-15','yyyy-mm-dd')),

PARTITION ONEIDX_MAX VALUES LESS THAN(MAXVALUE)

);

插入4406727行数据,整个表大小为312MB。

3.2 创建五种场景的索引

--Local prefixed index类型一:

createindex Tivoli.li_idx_01ontivoli.li_db_session_t(timstap)localnologging;

--Local prefixed index类型二:

createindex Tivoli.li_idx_02on tivoli.li_db_session_t(timstap,dbname,allsess,activess)localnologging;

--Local nonprefixed index类型一:

create index Tivoli.li_idx_03on tivoli.li_db_session_t(dbname,allsess,activess)localnologging;

--Local nonprefixed index类型二:

create index Tivoli.li_idx_04on tivoli.li_db_session_t(dbname,allsess,timstap,activess)localnologging;

--全局索引:

(该索引,由于字段与Tivoli.li_idx_04安全一致,所以,无法两个索引并存,需要先
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇CentosMySQL5.6安装方法 下一篇Redis常用命令总结

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Shell脚本:Linux Sh (2025-12-25 05:50:11)
·VMware虚拟机安装Lin (2025-12-25 05:50:08)
·Linux学习教程,Linu (2025-12-25 05:50:06)
·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)