索引为什么没起作用?

noah1982 2009-12-04 05:30:42
表:t_guidangbak,字段id_no varchar2(18),有170万数据
建索引:create index inx_t_guidangbak_id_no on t_guidangbak(id_no)

SQL> set timing on
(1)
SQL> declare l_id nvarchar2(18);
2 l_orno varchar2(50);
3 l_sql varchar2(100);
4 begin
5 l_id:='370481197711072218';
6 l_sql:='select original_no from t_guidangbak where id_no=:id_no';
7 execute immediate l_sql into l_orno using l_id;
8 end;
9 /

PL/SQL 过程已成功完成。

已用时间: 00: 00: 06.03
(2)
SQL> declare l_id varchar2(18);
2 l_orno varchar2(50);
3 l_sql varchar2(100);
4 begin
5 l_id:='370481197711072218';
6 l_sql:='select original_no from t_guidangbak where id_no=:id_no';
7 execute immediate l_sql into l_orno using l_id;
8 end;
9 /

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.00

(1)和(2)的区别:
declare l_id nvarchar2(18);
declare l_id varchar2(18);
(1)中声明的l_id和字段id_no类型不一样
从执行用时来看,(1)和没建索引用时是差不多的,可见索引没起作用。
问题:索引为什么因为类型的不一样就没起作用?
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
noah1982 2009-12-04
  • 打赏
  • 举报
回复
不过博客中说明
4 比较不匹配的数据类型
确是我提出问题的原因。。
noah1982 2009-12-04
  • 打赏
  • 举报
回复
楼上教条了,这么简单一个查询语句,用没用到索引一下就看出来了。
我已经说明了(1)和没建索引用时是差不多的,可见索引没起作用。
Dave 2009-12-04
  • 打赏
  • 举报
回复


顺便说一点,走索引不一定就会块,具体情况要具体对待,我们可以从执行计划的cost的来判断..


在blog 中列的四种情况下,索引是不会被使用的。当然还有一些其他的原因.

Oracle 限制索引
http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4671674.aspx




------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
Dave 2009-12-04
  • 打赏
  • 举报
回复


走不走索引不是从时间来看的。 要从执行计划来看.

可以用Toad 或者PL/SQL dev ,点一下按钮就可以了

SQLPLUS 里执行 EXPLAIN PLAN

SQL>EXPLAIN PLAN FOR 你的sql语句;

SQL>EXPLAIN PLAN FOR SELECT * FROM EMP WHERE EMPNO=7369;
然后
SELECT plan_table_output
FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));
查看结果就是前面SQL语句的执行计划。





------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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