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

标签 sql oracle parallel-processing

是否有理论或线索来设置 Oracle 查询中的并行度?例如:
select * from some_table;
如果我想并行运行它,我可以像下面这样写,将并行度设置为 10:
select /*+parallel(10) */ * from some_table;
度数可以更改为任何其他数字。如果您查看解释计划,您会发现并行度越高,成本越低。我的问题是如何在编写查询时找到最佳度数,是否有理论或线索来设置 Oracle 查询中的并行度?

最佳答案

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

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

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

关于sql - 如何确定和设置 Oracle 查询中的并行度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25451449/

相关文章:

c# - 如何获得任务并行库使用的最大并行度?

mysql - 如何在此查询上进行内部联接

sql - 如何交叉两个联合查询

SQL删除表中最旧的记录

java - 执行线程核心数

r - mclapply 与 lme4 和长向量

c# - 如何优化 ASP.NET MVC Controller 以最小化数据库查询次数

sql - Postgresql 为每个 id 提取最后一行

Oracle sqlldr时间戳格式令人头疼

sql - 在多个脚本中定义包规范的元素?