如何确定和设置Oracle查询中的并行度

时间:2014-08-22 16:18:37

标签: sql oracle parallel-processing

是否有理论或线索来设置Oracle查询中的并行度?例如:

select * from some_table;

如果我想并行运行它,我可以像下面那样设置并行度10:

select /*+parallel(10) */ * from some_table;

学位数可以更改为任何其他数字。如果检查解释计划,则发现并行度越高,成本越低。我的问题是如何在编写查询时找到最佳学位数,是否有理论或线索来设置Oracle查询中的并行度?

1 个答案:

答案 0 :(得分:1)

太多变量会影响最佳设置,但Oracle可以自行决定,将所有重要因素考虑在内。您可以通过指定并行度数auto来执行此操作,例如/ * + PARALLEL(自动)* /。决定这一点时最难预测的是查询运行时系统的负载量 - 还有什么竞争资源。什么在晚上11点工作可能会非常缓慢,并在上午11点降低系统(不仅仅是查询)的性能。阅读本文是非常值得的:

http://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm#CIHGJFFH

特别是关于“平行度”的部分。