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

bsnail 2011-07-28 04:01:36
大家好,我下面两个表中,建立索引,可是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' )

...全文
402 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
FIR1987 2011-09-29
  • 打赏
  • 举报
回复
没有统计更新?
  • 打赏
  • 举报
回复
这个么,想不通,可能有别的配置/版本不同。
我休息了。
bsnail 2011-08-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 patrickkong 的回复:]
groupnumber varchar,
该成char试试
[/Quote]

不是 这个问题的。
用同样的建表语句,在另外一台服务器上建表后。
执行执行计划就能使用索引。
  • 打赏
  • 举报
回复
groupnumber varchar,
该成char试试
bsnail 2011-08-17
  • 打赏
  • 举报
回复
不是数据多少的问题,是数据库不知道怎么设置了。我在另外一台服务器上新建这个数据库表和索引,查收执行计划就是用到索引了。不过现在还不知道原来的数据库什么设置影响到了索引的使用,但是有些表却能使用索引。哪位大拿知道么?希望能教教,谢谢!
疯行无忌 2011-08-08
  • 打赏
  • 举报
回复
因为数据少,优化器判断执行索引的cost比顺序扫描的大,所以执行了顺序扫描,很多情况下数据量小的表没有必要建索引
bsnail 2011-07-29
  • 打赏
  • 举报
回复
下面是建表语句和索引
create table service
(
groupid serial not null ,
limittype integer default 0,
groupcallfunc integer default 0,
sysblackfunc integer default 0
primary key (groupid) constraint pk_service
);

create table "ipc".ctx_did_user
(
groupnumber varchar(16) not null ,
didpnp varchar(10) not null ,
didnumber varchar(16) not null
);
create unique index ix_pbxdid on user (groupnumber,didpnp) using btree ;
bsnail 2011-07-29
  • 打赏
  • 举报
回复
Estimated Cost很低 是因为测试的数据库表的数据不是很多。
难道应为数据少,就改为顺序扫描表,而不用索引?
bsnail 2011-07-29
  • 打赏
  • 举报
回复
Estimated Cost很低 是应为测试的数据库表的数据不是很多。
难道应为数据少,就自己扫描表,而不用所有?
  • 打赏
  • 举报
回复
Estimated Cost很低。不知道为什么有 SEQUENTIAL SCAN
ACMAIN_CHM 2011-07-28
  • 打赏
  • 举报
回复
显示一下你创建索引的语句。
  • 打赏
  • 举报
回复
字段是什么类型的?
bsnail 2011-07-28
  • 打赏
  • 举报
回复
顶一下,都没有看,没人回啊。

1,194

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧