很奇怪,表都做了分析,可是为什么大部分SQL都不使用索引呀。。
尤其是几个大表都只做全表扫描是什么东东可能造成这种好像全局的影响呢?(不是某个SQL,是很多SQL都是这个现象)一般只是个别表才对呀,然后针对性的优化使查询计划更好就行,可是不知怎么得,很多查询都全表扫描
一般就算没分析表,也应该是RBO方式吧,那也会用点索引呀,怎么会那么多模块中的查询和联接操作中表都是全表扫描呢??很不理解,感觉是数据库本身哪设了还是少做了什么所置,但不知道是哪??望大虾指点!!

解决方案 »

  1.   

    索引是不是失效了?重建试试会不会是对建了索引的字段用了函数什么的? 会不会是有隐式转换 也可能是oracle认为不值得走索引?...
      

  2.   

    同样关注这个问题,大前天晚上对整个数据库做了表分析,结果还是出现了顶级活动里面的SQL没有走索引的情况,但是索引是没有失效的` 期待答案
      

  3.   

    摘自http://blog.csdn.net/yczz/archive/2009/09/27/4600487.aspxORACLE索引失效解决方案最近碰到这样一个问题:在PROD_PARTS表中新添加了一个索引:create index IDX_PT_DV_ID on PROD_PARTS (DEVICE_ID);但是在使用DEVICE_ID字段进行查询时,发现该索引并没有被利用到:SELECT * FROM PROD_PARTS WHERE device_id =122511619;
    执行计划:
    TABLE ACCESS FULL之后请教DBA后,发现是数据统计的问题,具体的解决办法是执行下面的语句:analyze table PROD_PARTS compute statistics;
    ANALYZE TABLE PROD_PARTS COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
    analyze table PROD_PARTS compute statistics for table for all indexes for all indexed columns;