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安全一致,所以,无法两个索引并存,需要先删除Tivoli.li_idx_04后,才能创建Tivoli.li_idx_05索引)
create index Tivoli.li_idx_05on tivoli.li_db_session_t(dbname,allsess,timstap,activess);
3.3 对表与索引进行统计分析
begin
dbms_stats.gather_table_stats(ownname=>'TIVOLI',tabname=>'LI_DB_SESSION_T',estimate_percent=>50,cascade=>TRUE);
end;
3.4 验证所创建索引的类型
select index_name,partitioning_type,subpartitioning_type,locality,alignment from DBA_PART_INDEXES where index_namein('LI_IDX_01','LI_IDX_02','LI_IDX_03','LI_IDX_04','LI_IDX_05')
输出结果如下:
INDEX_NAME
PARTITIONING_TYPE
SUBPARTITIONING_TYPE
LOCALITY
ALIGNMENT
LI_IDX_01
RANGE
NONE
LOCAL
PREFIXED
LI_IDX_02
RANGE
NONE
LOCAL
PREFIXED
LI_IDX_03
RANGE
NONE
LOCAL
NON_PREFIXED
LI_IDX_04
RANGE
NONE
LOCAL
NON_PREFIXED
LI_IDX_05因为还没有创建所以查询没有结果,实际上,如果LI_IDX_05不是分区索引,所以,即便该索引建立起来了,在DBA_PART_INDEXES视图中也不会出现。
4、五种索引类型下的性能对比
以一条select语句为测试语句。
4.1 场景一:local prefixed类型,索引列为表分区键列SQL> set autotrace traceonly
SQL> set linesize 999