【分享与探讨六】关于参数 parallel_force_local

【问题】对于oracle RAC来讲,理论上就是要实现多节点并行处理,有些人按照这个思路认为每一个任务都能达到绝对的负载均衡才是最优的方案。真的是要追求绝对的均衡和绝对的并行处理么?

【分析】其实ORACLE RAC为了实现多节点并行处理是花费了很大代价的,假设一个集群当中有三个节点,对于某一个数据块儿读写,有一个Master、有一个请求者、有一个拥有者,请求者向Master请求数据块儿的最新版本,Master把请求转发给拥有者,拥有者按照请求信息把数据块儿传送给申请者,然后加锁进行读写。这一过程是需要有大量的数据传输和竞争存在的,一旦这个事情成为多数,那么势必造成节点间的通讯负载过大,造成大量的锁等待时间,严重影响数据库整体性能。尤其是在做跨数据中心高可用的场合下。

【建议】因此我们只要做到业务级别的并发处理,而不要追求一个SQL级别的绝对并发。物极必反的道理就在于此。因此把参数打开,使得进程级别并发实现本地化处理,不要跨节点处理。
alter system set parallel_force_local=TRUE scope=spfile sid='*';

参与7
  • dual  dual
    现在有的公司根据业务线进行区分,不痛的业务线在访问数据库时通过不同的节点进行访问,也合理的避开了 内存的融合现象
    2017-05-10

1同行回答

haizdlhaizdl技术经理大连
【问题】对于oracle RAC来讲,理论上就是要实现多节点并行处理,有些人按照这个思路认为每一个任务都能达到绝对的负载均衡才是最优的方案。真的是要追求绝对的均衡和绝对的并行处理么?【分析】其实ORACLE RAC为了实现多节点并行处理是花费了很大代价的,假设一个集群当中有三个...显示全部

【问题】对于oracle RAC来讲,理论上就是要实现多节点并行处理,有些人按照这个思路认为每一个任务都能达到绝对的负载均衡才是最优的方案。真的是要追求绝对的均衡和绝对的并行处理么?

【分析】其实ORACLE RAC为了实现多节点并行处理是花费了很大代价的,假设一个集群当中有三个节点,对于某一个数据块儿读写,有一个Master、有一个请求者、有一个拥有者,请求者向Master请求数据块儿的最新版本,Master把请求转发给拥有者,拥有者按照请求信息把数据块儿传送给申请者,然后加锁进行读写。这一过程是需要有大量的数据传输和竞争存在的,一旦这个事情成为多数,那么势必造成节点间的通讯负载过大,造成大量的锁等待时间,严重影响数据库整体性能。尤其是在做跨数据中心高可用的场合下。

【建议】因此我们只要做到业务级别的并发处理,而不要追求一个SQL级别的绝对并发。物极必反的道理就在于此。因此把参数打开,使得进程级别并发实现本地化处理,不要跨节点处理。
alter system set parallel_force_local=TRUE scope=spfile sid='*';

收起
银行 · 2017-05-09
浏览6654

提问者

haizdl
haizdl101634
技术经理大连
擅长领域: 灾备存储服务器

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-05-09
  • 关注会员:2 人
  • 问题浏览:9040
  • 最近回答:2017-05-09
  • X社区推广