问题描述
Oracle Resource Manager 没有为查询分配 cpu。我们的应用程序在同一个会话中执行了许多查询,但不知何故它总是卡在今天的一个特定查询上(以前它运行良好超过 3 年)并且在与 DBA 检查时发现它正在等待事件 resmgr:cpu 量子
虽然当我从我的 sql 开发人员那里运行相同的查询时,它运行没有任何问题。我检查过没有锁,cpu 上的负载也很小,但我相信这无关紧要,因为查询甚至没有让 cpu 执行。
以下是我的 Oracle 版本详细信息
Oracle Database 12c 企业版 12.1.0.2.0 版 - 64 位生产,
PL/sql 版本 12.1.0.2.0 - 生产,《核心 12.1.0.2.0 生产》
Linux 版 TNS:版本 12.1.0.2.0 - 生产
NLSRTL 版本 12.1.0.2.0 - 生产
有人可以指导资源管理器不仅为此特定查询分配 cpu 的原因。查询中没有提到提示
解决方法
要有效地监视和调整数据库资源管理器,您必须设计 具有代表性的环境。数据库资源管理器最适用于 系统利用率高的大型生产环境。如果一个测试 系统负载不足,测量的 CPU 分配可能非常 与活动资源计划中指定的分配不同。
这样做
- 创建一个将执行一些统计数据的作业。
- 制定计划
- 创建消费者组
- 创建计划指令
- 验证并提交计划
- 组切换
- 在连接时为数据库的用户“CRC”分配一个默认的初始消费者组