잘 되던 쿼리문이 어느날 다음과 같은 오류를 던졌습니다.
ORA-00600: 내부 오류 코드, 인수 : [kkocxj : pjpCtx], [], [], [], [], [], [], []
찾아보니 다음과 연관이 있엇습니다.
"실행 계획 이상과 Cost Based Push Predicate"
9i 버전에서 정상적으로 Push Predicate이 이루어지는 쿼리가 10g에서는 Push Predicate가
발생하지 않을 수 있다. 통계 정보가 정확하다면 오라클의 대부분의 경우 최적의 판단을 하지만,
간혹 특정 쿼리의 경우에는 Push Predicate이 이루어지지 않음으로써 비효율적인 실행 계획으로
바뀔 수 있다. 이런 경우에는 _OPTIMIZER_PUSH_PRED_COST_BASED 파라미터 값을 FALSE로
변경하거나 OPT_PARAM 힌트를 이용해서 해당 파라미터를 Statement 레벨에서 변경해야 한다.
alter session set "_optimizer_push_pred_cost_based" = false;
(or) alter system set "_optimizer_push_pred_cost_based" = false;
(or) alter system set "_optimizer_push_pred_cost_based" = false;