来自平行参考_最小_百分比:
PARALLEL_MIN_PERCENT允许您指定并行执行所需并行执行进程数量的最小百分比。设置此参数可确保除非有足够的资源,否则并行操作不会执行。默认值0表示没有设置进程的最小百分比。考虑以下设置: PARALLEL_MIN_PERCENT = 50 PARALLEL_MIN_SERVERS =5 PARALLEL_MAX_SERVERS = 10如果10个并行执行进程中有8个繁忙,只有2个进程可用。如果然后请求一个并行度为8的查询,则不会满足最低50%的要求。
平行_最小_服务器指定并行执行所需的请求并行执行进程的最小百分比。默认值为0时,如果没有可用的并行服务器进程,则并行语句将执行串行语句。
当至少50%的服务器在运行时无法用于查询时会发生什么情况?查询是否排队,是串行执行,还是抛出一个错误,例如可用的并行查询从站不足?
发布于 2017-01-14 17:07:48
我相信,对于该配置,您将得到如下错误:
ORA-12827:可用的并行查询奴隶不足
如果在服务器上配置了不同的并行性,则DOP可能会被降级。在某些情况下,如果没有足够的PX服务器可用,它将被降级为串行执行。有几个用于这里的parallel_degree_policy=MANUAL示例:
由于只有12台可用的PX服务器,这条语句被从DOP=8降级为DOP=6,并获得所有12台可用的PX服务器。现在考虑一下在DOP=8中提交的另一个查询,即使这个查询需要16台PX服务器,但是由于没有可用的PX服务器,所以不会给它任何请求。此查询被降级为DOP=1,并按顺序运行。
我在运行自己的代码时就经历过这种情况。实现看看DOP什么时候被降级的一种方法是通过SQL。下面是一些您可以看到的消息的示例:
350 DOP降级,由于自适应DOP 351 DOP降级,由于资源管理器最大DOP 352 DOP降级,由于没有足够数量的进程353 DOP降级,因为奴隶没有加入
发布于 2017-01-15 02:46:07
通过数据库初始化参数PARALLEL_ADAPTIVE_MULTI_USER控制自适应并行性。
如果没有足够的并行服务器来满足所请求的DOP,可能会发生以下三种情况之一:
PARALLEL_MIN_PERCENT,并且低于指定的DOP的指定百分比,则SQL语句可能以ORA-12827: insufficient parallel query slaves available终止。https://dba.stackexchange.com/questions/161063
复制相似问题