表: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)和没建索引用时是差不多的,可见索引没起作用。
问题:索引为什么因为类型的不一样就没起作用?
建索引: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)和没建索引用时是差不多的,可见索引没起作用。
问题:索引为什么因为类型的不一样就没起作用?
解决方案 »
- oracle无法登录求解决
- 【分享】ORACLE对象名大小写敏感性相关的深入分析
- hibernate 查询笛卡尔积问题
- 请教下11.1.0.7的patch除了Windows的,还有其他平台的吗?
- oracle安装问题
- 在oracle中如何设置数据库的时区(DBTIMEZONE)?
- 请问:我用PL/SQL Developer工具,调试procedures,提示“不可能在单一模式”,何解呀?急呀!
- Oracle 监听器服务经常性出错是何原因? --- 急!!
- linux下用ocl连接oracle的奇怪问题
- ASP+ORACLE存储过程/包如何输出2个值???
- 存储过程做表数据迁移
- 请教一个SQL语句
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
在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