欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

informix 在字段建有索引,但是执行计划却不使用。解决思路

更新时间: 2014-01-05 02:20:14 责任编辑: Author_N1

 

informix 在字段建有索引,但是执行计划却不使用。
大家好,我下面两个表中,建立索引,可是informix执行计划却不使用,而是去顺序扫描。
帮忙看看是是怎么一回事,如何解决。谢谢!
1、service 在字段groupid建有索引,但是下面的查询语句却没有使用索引,而是顺序扫描。 
Index_name Owner Type/Clstr Access_Method Columns
 
 163_328 ipc unique/No btree groupid
 
QUERY:
------
SELECT groupcallfunc,sysblackfunc,limittype
from service
where groupid=2

Estimated Cost: 1
Estimated # of Rows Returned: 1
  1) service: SEQUENTIAL SCAN
  Filters: service.groupid = 2 

2、User表有联合索引(GroupNumber,DIDPNP),执行计划却把查询条件的顺序掉换了,不使用索引
QUERY:
------
SELECT DIDNumber ,DIDPNP ,DIDPNP 
from User
WHERE GroupNumber='1211' AND DIDPNP ='0103121211'

Estimated Cost: 1
Estimated # of Rows Returned: 1
  1) user: SEQUENTIAL SCAN
  Filters: (user.didpnp = '0103121211' AND user.groupnumber = '1211' ) 
 


--参考方法--
字段是什么类型的?
--参考方法--
显示一下你创建索引的语句。
--参考方法--
Estimated Cost很低。不知道为什么有 SEQUENTIAL SCAN

--参考方法--
因为数据少,优化器判断执行索引的cost比顺序扫描的大,所以执行了顺序扫描,很多情况下数据量小的表没有必要建索引
--参考方法--
groupnumber varchar,
该成char试试
--参考方法--
这个么,想不通,可能有别的配置/版本不同。
我休息了。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:20:14
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8597/
本文WWW.DOC100.NET DOC100.NET版权所有。