CPU_PER_CALL和CPU_PER_SESSION之间有什么区别?

时间:2014-10-15 05:26:48

标签: oracle database-administration

我对CPU_PER_CALL和CPU_PER_SESSION之间的区别感到困惑,所以任何人都可以告诉我它的区别。

3 个答案:

答案 0 :(得分:1)

CPU_PER_CALL限制单个SQL语句可以使用的CPU量。 CPU_PER_SESSION限制在单个会话中运行的所有SQL语句可以消耗的CPU总量。

通常,会话将涉及执行许多不同的SQL语句。因此,如果你要设置两者,你通常希望会话限制比呼叫限制大几个数量级。

答案 1 :(得分:0)

Froms docs

  

CPU_PER_SESSION指定会话的CPU时间限制,表示   百分之一秒。

     

CPU_PER_CALL指定呼叫的CPU时间限制(解析,执行,   或获取),以百分之一秒表示。

顾名思义,

SESSION是根据用户连接结帐直到签入计算的。

CALL是对DBMS的每次SQL调用。

因此,当违反任何用户活动(查询)的这些值时,dbms将中止抛出异常的操作。这些用于避免不必要的数据库开销。

答案 2 :(得分:0)

除了已经描述的差异(检查"每次通话的cpu使用情况" vs"检查每个会话的cpu使用情况")据我所知:

  • 违反CPU_PER_CALL限制只会创建ORA错误(=终止执行)
  • 违反CPU_PER_SESSION限制会产生ORA错误并记录您(=终止执行和会话)