首页 > 解决方案 > Oracle 资源管理器未将 CPU 分配给查询

问题描述

Oracle 资源管理器未将 CPU 分配给查询。我们的应用程序在同一个会话中执行许多查询,但不知何故,从今天开始它总是卡在一个特定的查询上(以前它运行良好超过 3 年)并且在与 DBA 检查时发现它正在等待事件resmgr :cpu 量子

虽然当我从我的 SQL 开发人员那里运行相同的查询时,它运行时没有任何问题。我已经检查过没有锁并且 CPU 上的负载也很小,但我相信这并不重要,因为查询甚至没有让 CPU 执行。

以下是我的 Oracle 版本详细信息

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64 位生产,

PL/SQL 版本 12.1.0.2.0 - 生产,“CORE 12.1.0.2.0 生产”

适用于 Linux 的 TNS:版本 12.1.0.2.0 - 生产

NLSRTL 版本 12.1.0.2.0 - 生产

有人可以指导资源管理器仅为此特定查询分配 CPU 的原因。查询中没有提到任何提示

标签: javaoracleoracle12cresourcemanager

解决方案


要有效地监控和调整数据库资源管理器,您必须设计一个有代表性的环境。数据库资源管理器在系统利用率高的大型生产环境中效果最佳。如果测试对系统施加的负载不足,则测量的 CPU 分配可能与活动资源计划中指定的分配有很大不同。

去做这个

  • 创建一个将执行一些统计的作业。
  • 创建计划
  • 创建消费者组
  • 创建计划指令
  • 验证并提交计划
  • 组切换
  • 在连接时为数据库的用户“CRC”分配一个默认的初始消费者组

推荐阅读