Chinaunix

标题: informix索引问题 [打印本页]

作者: eastsea    时间: 2003-02-24 11:20
标题: 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个)
作者: shisen    时间: 2003-02-24 11:56
标题: informix索引问题
请问是怎样的索引,能不能将创建索引的语句列出?
如果是组合索引,并且字段不是第一个,是不会按照它检索的。
作者: eastsea    时间: 2003-02-24 14:33
标题: informix索引问题
pol_code 的单一索引
创建语句如下
create index ix_pol_code on insur_info(pol_code)
作者: wolfop    时间: 2003-02-24 20:46
标题: 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索引基本难以起作用,建议通过表分区实现优化。
作者: 大梦    时间: 2003-02-25 00:06
标题: informix索引问题
哈哈!
中国人寿的兄弟到这来求救了!
作者: lk72    时间: 2003-07-15 11:55
标题: informix索引问题
哈哈!
中国人寿的兄弟到这来求救了!

----何以见得?用informix的行业多了去。
作者: likuifu    时间: 2009-12-25 00:49
1、首先需要确认是否已经统计更新,可以比较systables 表和sysmaster:sysptnhdr表中nrows差异;
2、统计更新完毕后确认pol_code是否为组合索引,如果是组合索引,有没有再第一个位置;
3、如果索引还是没走到,想要抛开数据库自己的查询优化器使用指定的查询方式,可以SELECT --+ORDERED * FROM tab的方式实现。

估计你还是索引建乱了,导致优化器都没找到合适的查询方式,建议重新规划索引。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2