Lazer Asked: 2011-02-17 12:09:41 +0800 CST2011-02-17 12:09:41 +0800 CST 2011-02-17 12:09:41 +0800 CST 在Oracle中,如何全局启用并行执行? 772 在 Oracle 11g 中,有没有办法通过设置标志等来告诉数据库尽可能使用并行执行,而不是在每个 SQL 语句中使用 PARALLEL 提示? oracle oracle-11g-r2 2 个回答 Voted Best Answer Gaius 2011-02-17T12:40:47+08:002011-02-17T12:40:47+08:00 简单的回答:是的。可惜不是那么简单,如果你想开启并行,那么你显然很关心性能,而且它是非常可调的。 开始alter system set paralllel_automatic_tuning=true scope=spfile;然后重新启动。这将使甲骨文做它认为最好的事情。还有许多其他参数需要设置(例如parallel_execution_message_size),您需要进行试验才能找到最佳参数。小心这个;当您开始使用并行查询时,很容易在基准测试中迷失方向,然后在“现实世界”中发现一些查询飞行,但系统的整体吞吐量实际上会降低,因为某些会话缺乏 CPU 或系统被迫进入交换。文档警告: 当并发用户的查询服务器进程过多时,可能会发生内存争用(分页)、I/O 争用或过多的上下文切换。这种争用可以将系统吞吐量降低到比不使用并行执行时更低的水平。 所以我强烈建议设置一些限制,例如资源消费者组。 此外,对于 x 是数字的任何表格ALTER TABLE table_name PARALLEL (DEGREE x);,4 或 8 可能是不错的起点。 SQLRockstar 2011-02-17T12:30:21+08:002011-02-17T12:30:21+08:00 我相信你想要 parallel_automatic_tuning=true 设置。
简单的回答:是的。可惜不是那么简单,如果你想开启并行,那么你显然很关心性能,而且它是非常可调的。
开始
alter system set paralllel_automatic_tuning=true scope=spfile;
然后重新启动。这将使甲骨文做它认为最好的事情。还有许多其他参数需要设置(例如parallel_execution_message_size),您需要进行试验才能找到最佳参数。小心这个;当您开始使用并行查询时,很容易在基准测试中迷失方向,然后在“现实世界”中发现一些查询飞行,但系统的整体吞吐量实际上会降低,因为某些会话缺乏 CPU 或系统被迫进入交换。文档警告:所以我强烈建议设置一些限制,例如资源消费者组。
此外,对于 x 是数字的任何表格
ALTER TABLE table_name PARALLEL (DEGREE x);
,4 或 8 可能是不错的起点。我相信你想要 parallel_automatic_tuning=true 设置。