oracle 并行问题
select /*+parallel(t 2)*/count(*) from t,这样的话就是把这条sql的并行度设为2,
在运行这条sql时,在pl dev里tools-->sessions-->active sessions里能看到这条sql的并行的进程。说明是并行了1,我的疑惑是:有时候在资源足够的情况下,类似的sql在tools-->sessions-->active sessions里能没有并行的进程,
那么没看到并行的进程,那这种sql是在运行的时候并行了没?
2,还有哪些方法看sql(或者过程里的sql)是并行了没?

解决方案 »

  1.   

    执行计划  最直接。
    按F5,里面出现了PX 之类的东西
      

  2.   

    当然有了PX 之类的东西,可问题就是:
    有时候在资源足够的情况下,类似的sql在tools-->sessions-->active sessions里能没有并行的进程,
    那么没看到并行的进程,那这种sql是在运行的时候并行了没?
      

  3.   

    v$session  、  v$px_session 
    ps:oltp慎用parallel!并行不总是那么有效、
      

  4.   

    并行查询可以在查询语句,子查询语句中使用,但是不可以使用在一个远程引用的对象上(如DBLINK)。 
    一个查询能够并行执行,需要满足一下条件:(1)       SQL语句中有Hint提示,比如Parallel 或者 Parallel_index.(2)       SQL语句中引用的对象被设置了并行属性。(3)       多表关联中,至少有一个表执行全表扫描(Full table scan)或者跨分区的Index range SCAN。
      

  5.   

    多谢,我这里是olap,这位大哥,还有些别的方法吗?