informix索引问题
我在informix的dbaccess 下执行语句set explain on;
select * from insur_info
where pol_code = 'B'
时发现执行速度特别慢,后来察看以下out文件为
QUERY:
------
select * from insur_info
where pol_code = 'B'
Estimated Cost: 4
Estimated # of Rows Returned: 10
1) bill.insur_info: SEQUENTIAL SCAN
Filters: bill.insur_info.pol_code = 'B'
检索数据库时采用顺序检索,但是我对pol_code 字段建立了索引,
想向高手们请教为什么查询时不通过索引,怎样才能通过索引查询,
是不是我建的索引太多(有10个)
informix索引问题
请问是怎样的索引,能不能将创建索引的语句列出?如果是组合索引,并且字段不是第一个,是不会按照它检索的。
informix索引问题
pol_code 的单一索引创建语句如下
create index ix_pol_code on insur_info(pol_code)
informix索引问题
原帖由 "eastsea" 发表:我在informix的dbaccess 下执行语句
set explain on;
select * from insur_info
where pol_code = 'B'
时发现执行速度特别慢,后来察看以下out文件为
QUERY:
------
select * from insur_info
where pol_co..........
你的pol_code可能的取值有几个?不多的话,IDS支持的B-TREE索引基本难以起作用,建议通过表分区实现优化。
informix索引问题
哈哈!中国人寿的兄弟到这来求救了!
informix索引问题
哈哈!中国人寿的兄弟到这来求救了!
----何以见得?用informix的行业多了去。 1、首先需要确认是否已经统计更新,可以比较systables 表和sysmaster:sysptnhdr表中nrows差异;
2、统计更新完毕后确认pol_code是否为组合索引,如果是组合索引,有没有再第一个位置;
3、如果索引还是没走到,想要抛开数据库自己的查询优化器使用指定的查询方式,可以SELECT --+ORDERED * FROM tab的方式实现。
估计你还是索引建乱了,导致优化器都没找到合适的查询方式,建议重新规划索引。
页:
[1]