首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Informix >

informix 在字段建有目录,但是执行计划却不使用

2013-01-07 
informix 在字段建有索引,但是执行计划却不使用。大家好,我下面两个表中,建立索引,可是informix执行计划却

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试试
[解决办法]
这个么,想不通,可能有别的配置/版本不同。
我休息了。

热点排行