hint指定表索引,仍然无法按该索引去走。。

[复制链接]
查看11 | 回复9 | 2007-4-25 04:02:08 | 显示全部楼层 |阅读模式
各位大大,
当我进行 select /*+ (table index_name)*/ a.* from ......这样语句查询的时候,并不会按照指定的索引进行查询。。
请问,在什么情况下,hint是不起作用的。。。thanks。。。

PS:没有具体的例子,只是想知道where子句在这种情况下是怎么影响hint的。。
[ 本帖最后由 小沙漏 于 2011-1-12 11:58 编辑 ]
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
语句有索引 is not null吗??或者索引列有not null约束吗
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
看看执行计划里是走了其它的索引,还是全表扫描。
sql 和执行计划呢,需要具体问题具体分析。
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
是查物理表还是视图?
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层

使用hints只是一种辅助功能, 优化器有时会忽略人工指定的hints, 这非常正常, 你目前语句可能没有对表访问使用index, 而是FTS, 这是基于语句成本的考虑了!

回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
原帖由 dingjun123 于 2011-1-12 12:13 发表
语句有索引 is not null吗??或者索引列有not null约束吗

dingjun123,呵呵,需要is not null 吗?通常情况下,既然手动指定了索引,应该都是存在的啊。。你所说的索引列有not null约束吗?这个不是很清楚。。。
能给解释下吗?
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
呵呵,我已经说了哦,只是想知道一下where子句中都有什么情况会影响hint。。。
至于执行计划需要一个具体事例的。。。我还没有,只是记得有这个问题。。。谢谢。。。
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
原帖由 jams007 于 2011-1-12 12:27 发表
是查物理表还是视图?

jams007你好,是查物理表。。。
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
bell大大,我还有点不明白,我能用执行效率去衡量执行一条语句的成本吗?
回复

使用道具 举报

千问 | 2007-4-25 04:02:08 | 显示全部楼层
搞这么多,为什么完整的sql和计划不列一下呢??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行