有一些数据库性能问题可能是因为同时启动的并行进程过多造成的,特别常见于RAC节点重启,很多时候是因为瞬间启动了几百个并行进程,导致OS各项指标“彪高”,后台进程失去响应。近遇到的一个,是因为SQL语句中写了/*+ parallel a,8*/ ,但是在RAC的两个节点上各使用了256个并行进程,一共启动了512个并行进程,导致网络心跳丢失。因为问题可以通过执行这个语句重现,而使用parallel_force_local=true可以workaround这个问题,所以基本可以确定是跨节点并行导致的。 抛开这个问题背后的其他因素不谈,我们单来讨论一下:一条SQL语句究竟会产生多少个并行进程