ORA-02393: exceeded call limit on CPU usage(CPU 使用量の呼出し上限を超えた)
Oracle意味
セッションに割り当てられたリソースプロファイルで定義された、1 回の呼出しで許容される CPU 時間 (CPU_PER_CALL) を超えたため、Oracle がその呼出しを終了した。リソース制限のための安全装置である。
原因
ユーザーのプロファイルで CPU_PER_CALL の上限が定義され、RESOURCE_LIMIT=TRUE となっており、単一の SQL/PLSQL 呼出しがこの CPU しきい値を超えた。通常、想定をはるかに超える CPU を消費する非効率/制御されないクエリがきっかけとなる。
対処方法
CPU 消費が上限を下回るようクエリを最適化する (適切なインデックス、正しい実行計画、不要な全表走査の排除)。業務要件が正当であれば、該当ユーザーのプロファイルで CPU_PER_CALL を増やすか UNLIMITED に設定する: ALTER PROFILE ... LIMIT CPU_PER_CALL ...; プロファイルではなく Database Resource Manager でより柔軟にリソースを管理することを検討する。