数据库服务器的cpu数量越来越多
为充分提高性能,很多时候都会使用并行处理来提高运算速度
并行处理虽然可以在多个cpu上进行一个事务的处理,提高运算能力
但同时也有合并数据以及其他方面的开销
对于rac来说,如果一个并行操作跨了两个节点间的cpu来进行的话会加大私有网络的数据传输量
当大量的PX类等待事件出现的时候就要考虑是否要限制下节点间并行的进行
有两个节点组成的RAC,数据库名是DB,实例名分别是DB1,DB2,为了实现一个SQL只能抢到一个节点上的并行进程,不能在这个节点的并行不够这个SQL使用的情况却去使用另一个节点上的并行进程,即不能跨节点使用并行进程,每个语句所使用的并行进程分布在单独一个节点:
ALTER SYSTEM SET instance_groups='DB1','DB_ALL' SCOPE=SPFILE SID='db1';
ALTER SYSTEM SET instance_groups='DB2','DB_ALL' SCOPE=SPFILE SID='db2';
ALTER SYSTEM SET instance_name='db1' SCOPE=SPFILE SID='db1';
ALTER SYSTEM SET instance_name='db2' SCOPE=SPFILE SID='db2';
ALTER SYSTEM SET parallel_instance_group='DB2' SCOPE=SPFILE SID='db2';
ALTER SYSTEM SET parallel_instance_group='DB1' SCOPE=SPFILE SID='db1';