关于Oracle的疑问

  1. 索引范围扫描(index range scan)

    select empno,ename from emp where empno > 1 order by empno

    这种情况下不会使用索引范围扫描?

    可能的答案:Oracle优化器会自动选择较优的方式去执行查询,对于数据量较大、查询数据相对较少时,会使用范围索引。

  2. 索引唯一扫描(index unique scan)

    当数据类型不一致时,不会进行索引唯一扫描,但是实际仍然唯一索引。

    select empno,ename from emp where empno='10'

    当数据类型不一致时,Oracle会做隐式转换to_number,如果转换的是字段就不会走索引,如果转换的是条件,就会走索引了,因此对于number隐式转换varchar2的情况,仍然会走索引。如果字段a定义类型为varchar2,where中直接写 a=255,这样就不会走索引,要走索引需用单引号。

3、

posted @ 2015-07-24 18:06  mellowsmile  阅读(367)  评论(0编辑  收藏  举报