我记得ORACLE有自己的优化系统!有索引也不一定用上!看系统的优化!
系统会自动选出最快的路径进行!写法上,我倒觉得不一定很规定吧!一定要综合数据来分析!

解决方案 »

  1.   

    不必的,分区表还是一个总表来的.
    你只须SELECT * FROM AAA WHERE ...就行了.
    如果要具体指定哪一个分区,也应该是SELECT * FROM AAA(分区1) WHERE ...
    不过没必要,因为分区表会自动按条件到所在的分区里查找数据.
    对分区表进行查询时,同样要根据查询需要建上索引.
      

  2.   

    由于没权限,我不能看执行计划。分区是在查询时自动使用的吗?但是我把year这个分区写在where子句:where year =...比没这条语句时执行速度快了好几分钟,而且在year字段上没索引,请问这是为什么呢?
      

  3.   

    写错了。执行慢的不是不写year=...而是把year=...这个条件放在后面,没有紧跟where.