2

我是 Oracle 10g 资源管理器的新手,正在寻找有关如何制定计划以实现我的目标的指导。我将测试该计划,但我希望得到一些指导,这样我就不必尝试数百种不同的计划配置。我有以下目标:

  1. 不要让非系统会话显着减慢系统会话。
  2. 不要让任何 OLTP 用户会话显着减慢任何其他 OLTP 用户会话。
  3. 不要让批处理减慢 OLTP。

鉴于这些目标,我的第一个想法是创建以下消费者组/计划指令:

Consumer Group       Level 1     Level 2    Level 3
SYS                  100%           0%        0%
OLTP1                  0%          10%        0%
OLTP2                  0%          10%        0%
OLTP3                  0%          10%        0%
OLTP4                  0%          10%        0%
OLTP5                  0%          10%        0%
OLTP6                  0%          10%        0%
OLTP7                  0%          10%        0%
OLTP8                  0%          10%        0%
OLTP9                  0%          10%        0%
OLTP10                 0%          10%        0%
BATCH                  0%           0%      100%

使用这种方法,可以将每个 OLTP 用户放入不同的 OLTP 组(假设有 10 个用户)。文档对此不是很清楚,但听起来如果 OLTP1 组中的 OLTP 用户需要的份额超过其 10% 的份额,只要其他所有 OLTP 组在需要时获得 10% 的份额,它就会获得它。我的理解准确吗?这会起作用还是有更好的方法?

4

1 回答 1

3

如果他们有相同的要求,我会稍微简化一下,为 OLTP 创建一个组。仅当新组在优先级方面的要求与其他组不同时才创建一个新组。还要确保当 OLTP 用户启动了长时间运行的重型进程时,该会话被切换到批处理组,或者根本不启动。资源管理器仅在 cpu 消耗为 100% 时启动。从那时起,它将开始划分资源,以确保每个组都能根据您的指令获得应得的东西。其他要考虑的事情是最大并行度、会话池和(从 11g 及更高版本)撤消使用和 io 限制。

最好的问候,罗纳德 http://ronr.blogspot.com

于 2009-06-26T12:37:36.860 回答