oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)

[size=medium][color=red][b] 1.用途[/b][/color][/size]
强行启用并行度来执行当前SQL。这个在Oracle 9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会多核同时工作,来提高效率。 但本身启动这个功能,也是要消耗资源与性能的。所以,一般都会在返回记录数大于100万时使用,效果也会比较明显。

[size=medium][color=red][b] 2.语法[/b][/color][/size]
/*+parallel(table_short_name,cash_number)*/ 这个可以加到insert、delete、update、select的后面来使用(和rule的用法差不多,有机会再分享rule的用法)
开启parallel功能的语句是:
alter session enable parallel dml;

这个语句是DML语句哦,如果在程序中用,用execute的方法打开。

SELECT  /*+PARALLEL(n)*/  *  FROM table


查看Oracle能利用的最大并行度


SQL> show parameters cpu

NAME TYPE VALUE
------------------------------------ ----------- -------
cpu_count integer 8
parallel_threads_per_cpu integer 2
resource_manager_cpu_allocation integer 8


值得注意的是,在实际使用中,计算机除了运行Oracle外,同时还在运行其他程序(如系统程序)。因此,用PARALLEL调用CPU线程值应设定为小于最大CPU线程的数值(笔者一般采用的值为:CPU线程总数-2)以避免将所有CPU资源强行分配给Oracle使用后导致系统无响应等情况发生。

你可能感兴趣的:(sql,oracle)