问大家一个菜鸟问题:
我有一个表A(A,B,C,D,E),分了10个区,分区字段是A,
现在执行:select count(*) from A where C='c'
oracle 10g是会根据分区数,启10个进程去查,还是只起一个进程查。如果只起一个进程在查,那如何来提高查询速度呢,用并行如何做?

解决方案 »

  1.   

    select count(*) from A where C='c'
    虽然A表是分了10个区,但是你上面这个表没有用到分区表。给表分区是会提供查询速度,前提是你用分区表去查才行。
      

  2.   


    我想了解的是oracle会启多少个进程去处理这个操作,有分区与无分区启的进程数是否一样。
      

  3.   

    我觉得分区不分区,查询都是那么一回事,虽然不清楚Oracle内部执行机制对这个怎么处理,对于大量数据来说,查询分区表比直接查原表快得多。但就实际经验来说,即使表分了区但是不用分区表去操作,同样也是很慢。你虽然分了十个区,但是不用分区表的话,查询也是那么一回事。你不能祈求,分了十个区,查询原表,Oracle就会并行十个进程去查。
    当然,这只是个人经验。
      

  4.   

    这个跟你的进程没有关系 就是一个进程 
    要想速度快可以考虑开启 并行  
    /*+parallel*/
      

  5.   


    如果我同时开10个JAVA进程去查,速度会不会有影响呢?