ORA-02393: exceeded call limit on CPU usage
Oracle의미
세션에 할당된 리소스 프로파일에 정의된 단일 호출당 허용 CPU 시간(CPU_PER_CALL)을 초과해 Oracle이 해당 호출을 종료했다. 리소스 제한을 위한 안전장치다.
원인
사용자 프로파일에 CPU_PER_CALL 한도가 정의되어 있고 RESOURCE_LIMIT=TRUE이며, 단일 SQL/PLSQL 호출이 이 CPU 임계값을 초과했다. 보통 예상보다 훨씬 많은 CPU를 소비하는 비효율적/통제되지 않은 쿼리가 원인이다.
해결 방법
쿼리를 최적화해(적절한 인덱스, 올바른 실행 계획, 불필요한 full table scan 제거) CPU 소비가 한도 아래로 내려가도록 한다. 비즈니스 요구가 정당하다면 해당 사용자의 프로파일에서 CPU_PER_CALL을 늘리거나 UNLIMITED로 설정한다: ALTER PROFILE ... LIMIT CPU_PER_CALL ...; 프로파일 대신 Database Resource Manager로 리소스를 더 유연하게 관리하는 것을 고려한다.