SELECT  COUNT(1) FROM ENT_WSZZ.ENTITY_LINK WHERE stabh='R1103071129082504560109' AND stbbh='D1103041658171501040645';
stabh和stbbh都建了索引。可是好像有时stabh用不了,下面是执行计划
| Id  | Operation                           | Name              | Rows  | Bytes
|Cost (%CPU)| Time     | Pstart| Pstop |-------------------------------------------------------------------------------------------------------------------------|   0 | SELECT STATEMENT                    |                   |     1 |    49
|     6   (0)| 00:00:01 |       |       ||   1 |  SORT AGGREGATE                     |                   |     1 |    49
|            |          |       |       ||*  2 |   TABLE ACCESS BY GLOBAL INDEX ROWID| ENTITY_LINK       |     1 |    49
|     6   (0)| 00:00:01 | ROWID | ROWID ||*  3 |    INDEX RANGE SCAN                 | ENTITY_LINK_STBBH |     3 |
|     4   (0)| 00:00:01 |       |       |

解决方案 »

  1.   

    看看索引值 是不是 有的为null 
      

  2.   

    楼主,表里满足这个条件的数据有多少:
    stabh='R1103071129082504560109' AND stbbh='D1103041658171501040645';
      

  3.   

    建了索引,不等于在查询的时候一定会用到索引,如果全表扫描的代价小于根据索引查询,oracle会选择全表扫描。你查询的结果在整个数据集中所占比例超过5%,索引就有可能不会使用
      

  4.   

    额 最近忙翻了 没回复大家对不起。这个问题其实是我犯傻了,不好意思说啊,其实是and后面条件直接查询为无记录,前面的条件自然不查了,好像是这样吧。