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

发布时间 2023-12-10 23:26:19作者: 七娃子

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

 2.语法
/*+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使用后导致系统无响应等情况发生。
————————————————
参考:https://blog.csdn.net/lan12334321234/article/details/84907176