parallel_force_local参数
示例:
alter system set parallel_force_local=true;
对于oracle RAC来讲,理论上就是要实现多节点并行处理,按照这个思路认为每一个任务都能达到绝对的负载均衡才是最优的方案。
其实ORACLE RAC为了实现多节点并行处理是花费了很大代价的,假设一个集群当中有三个节点,对于某一个数据块儿读写,有一个Master、有一个请求者、有一个拥有者,请求者向Master请求数据块儿的最新版本,Master把请求转发给拥有者,拥有者按照请求信息把数据块儿传送给申请者,然后加锁进行读写。这一过程是需要有大量的数据传输和竞争存在的,一旦这个事情成为多数,那么势必造成节点间的通讯负载过大,造成大量的锁等待时间,严重影响数据库整体性能。尤其是在做跨数据中心高可用的场合下。
因此只要做到业务级别的并发处理,而不要追求一个SQL级别的绝对并发。物极必反的道理就在于此。因此把参数打开,使得进程级别并发实现本地化处理,不要跨节点处理。