10g中Resource Manager资源管理器可以控制的资源种类:
- Oracle进程的CPU使用率
- 并行度(Parallel)
- UNDO数量
- SQL语句操作执行时间(Execute Time)
- 会话空闲时间(Idle Time) ---连接用户处于unactive状态超过idle time,会话自动被kill
- 活跃会话(session)数 --- 注意:是活跃即处于active状态的会话
CPU资源使用说明:
一, EMPHASIS CPU 分配方法确定在资源计划中对不同使用者组中的会话的重视程度。CPU
占用率的分配级别为从1 到8,级别1 的优先级最高。百分比指定如何将CPU 资源分配
给每一级中的各个使用者组。
以下规则适用于EMPHASIS 资源分配方法:
CPU 资源在给定级别按指定的百分比分配。为资源使用者组指定的CPU 百分比是该
使用者组在给定级别可以使用的最大值。
给定级别上没有使用的使用者资源可供下一级别的使用者组使用。例如,如果级别1
的使用者组只使用了60% 的可用资源,则其余的40% 可供级别2 的使用者组使用。
任何给定级别的百分比总和必须小于等于100。
对于没有明确指定计划指令的所有级别,其所有子计划或使用者组的默认资源是0%。
EMPHASIS 资源分配方法避免了资源缺乏问题,该问题导致优先级较低的使用者没
有运行的机会。
二,RATIO 策略是一个单级别CPU 分配方法。将指定要为使用者组分配的CPU 比率相对应的数字,而不是百分比。例如,假定有三个使用者组OLTP_USERS、DSS_USERS 和BATCH_USERS,可以指定下列比率:
OLTP_USERS:4
DSS_USERS:3
BATCH_USERS:2
OTHER:1
这就类似于让OLTP 用户获得40% 的资源、DSS 用户获得30% 的资源、批用户获得20%的资源、所有其它使用者组获得10% 的可用资源。如果OTHER 或DSS_USERS 使用者组中当前都没有使用者在使用CPU 资源,则OLTP_USERS 使用者组将获得三分之二的可用资源,而BATCH_USERS 使用者组将获得三分之一。
最大估计执行时间:
1. 数据库资源管理器可以预先估计操作的执行时间。
2. 可以在资源使用者组级别为操作指定最大估计执行时间。
3. 如果估计时间超过MAX_EST_EXEC_TIME,则操作不会启动。(ORA-07455)
4. 此功能的好处是消除了使用过多系统资源的异常大的作业。
5. 默认值为UNLIMITED。
通过设置资源计划指令的MAX_EST_EXEC_TIME 参数,可以定义任何给定时间发生的
任何操作的最大估计执行时间。设置了此参数后,数据库资源管理器将估计特定作业消
耗的时间。如果操作的估计时间超过MAX_EST_EXEC_TIME,则不启动操作并发出
ORA-07455 错误。这样可以消除占用过多系统资源的任何异常大的作业。
如果有多个计划指令引用了某个资源使用者组,则该组可能有多个MAX_EST_EXEC_TIME。
数据库资源管理器将选择所有传入值中限制性最强的那个值。
使用基于成本的优化程序的统计信息,可以计算出给定语句的估计执行时间。
并行度
PARALLEL_DEGREE_LIMIT_MTH 限制任何操作的最大并行度。只能为资源使用者组,
而不能为子计划指定此方法。ABSOLUTE 方法是可能值,该方法指定可以为一个操作分配
的进程数量。如果有多个计划指令引用了相同的子计划或使用者组,则使用所有可能值中
的最小值作为该子计划或使用者组的并行度限制。
活动会话池
ACTIVE_SESS_POOL_MTH 限制活动会话的数量。所有其它会话均为非活动的,在队列
中等待激活。ACTIVE_SESS_POOL_ABSOLUTE 是默认且唯一的可用方法。
使用活动会话池功能,可以控制每个资源使用者组的最大并发活动会话数。使用此功能,
由于资源的消耗与活动会话的数量成比例,所以DBA 能间接控制任何资源使用者组使用
的资源量。使用活动会话池有助于减少从系统中获取资源的服务器数量,因而可以避免
由于试图同时运行过多作业而导致的低效的分页、交换和其它资源损耗(如内存)。
使用活动会话填充活动会话池后,资源管理器对尝试成为活动会话的所有后续会话进行
排队,直到其它活动会话完成或成为不活动会话。活动会话是事务处理、查询或并行操作
中当前涉及的会话。单独的并行从属进程不被视为会话;而将整个并行操作视为一个活动
会话。
每个资源使用者组只有一个队列,排队方法是先进先出(FIFO),并带有超时。队列采用
内存结构,不能直接查询。
参考:刘相兵的博客