select /*+parallel(se,8)+parallel(sq,8)+parallel(tr,8)+parallel(pr,8)*/ sysdate,se.sid,se.username,se.machine,se.process client_pid,pr.spid server_pid,se.program,sq.sql_text 
from gv$session se,gv$sql sq,gv$transaction tr,gv$process pr
where tr.ses_addr=se.saddr
   and se.sql_address=sq.address
   and pr.addr=se.paddr
order by se.username,se.program;
在执行sql语句的时候,开parallel的时候,oracle到底是怎么工作的?

解决方案 »

  1.   

    并行相当于windows的多线程。
    并行常用在OLAP系统中。
    OLTP不常用,但可以在服务器空闲段使用并行。
    并行一般由手工来执行,不宜写在程序中。
      

  2.   

    你8的并行度,还有order by,会产生8+8+1个进程
    并行这东西,要求足够的cpu,足够的物理硬盘,足够的数据分布,不然贸然开启只会增加IO的负担.
    多用户情况下还会影响其他用户的相应时间
      

  3.   

    多个进程去运行一个任务  (在CPU 内存有够大的空闲的时候考虑)