Oracle性能调优--并行(parallel)

今天接触到了SQL并行。对于之前的只有几十万条数据的表来说没用过。现在数据已经上亿条。所以当再有临时提数的时候使用parallel很有必要。

优势:强制启动并行进程、分配任务与系统资源、合并结果集。大大缩短计算时间。在大表查询等操作中能够起到良好的效果。在ODS系统中报表统计等方面更有使用意义。

劣势:比较消耗资源,不建议在系统超负荷运行的情况下使用。

注意事项:/*+parallel(t,n)*/中,t代表表别名或者表明(没有起别名情况);n代表进程数量,一般值为:cpu数量-1。

例如:SELECT /*+parallel(a,16)*/ distinct a.comcode FROM statcmain a where a.underwriteenddate BETWEEN DATE'2011-1-1' AND DATE'2014-1-31';

一般而言主要在如下情况使用parallel HINT

1.表的数据量很大,超过一千万; 
2.数据库主机是多个CPU;
3.系统的当前负载较低;

简单的测试如下,效果很明显的:

       1.一般条件

 2.用parallel,并用别名作为参数,起别名

          Oracle性能调优--并行(parallel)_第1张图片

3.用parallel,用表明作为参数,未起别名


4.用parallel,用表明作为参数,起别名

         

5.用parallel,书写格式改变

     


你可能感兴趣的:(Oracle)