一、用途
强行启用并行度来执行当前SQL。这个在Oracle 9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会多核同时工作,来提高效率。 但本身启动这个功能,也是要消耗资源与性能的。所以,一般都会在返回记录数大于100万时使用,效果也会比较明显。
二、语法
/*+parallel(table_short_name,cash_number)*/
这个可以加到insert、delete、update、select的后面来使用
1、开启parallel功能的语句是:
alter session enable parallel dml;
2、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