안녕하십니까, 현아남푠입니다.
데이터 조회 시 제목과 같은 에러 팝업이 발생합니다..
조회 할 데이터의 양이 많을 시 쿼리 타임아웃에 의해 발생하는 알람으로 알고있는데..
데이터가 적어도( 약 600건 ) 발생을 합니다.. 신기한건 여러번 시도하다가 조회가 한번 되고나면
그 이후는 같은 쿼리문의 조회 기간을 길게하고 데이터가 많아도( 약 3만건 ) 조회가 잘 됩니다..
왜 처음 시도할때는 조회가 안되고 한번 성공하면 그 이후로는 잘되는지 이유를 알고싶고...
여러번 시도안하고 한번에 조회 잘 되는 방법을 알고싶습니다.. 도와주십시오!!
문제발생 쿼리문
select p.PU_ID, to_char( p.RPT_DATE, 'mm/dd hh24:mi:ss' ) RPT_DATE, p.RPT_PERIOD , p.SVC_BS, nvl( e.EQUIP_NAME, 'Unknown' ) EQUIP_NAME , p.POS_X, p.POS_Y, p.PU_BIT, p.CONN_STATUS, p.MOD_USER from TBL_DEV_HIST_PU p, TBL_EQUIPMENT_INFO e where p.DRILL_ID = 736 and p.PU_ID = 3301 and p.SVC_BS = e.EQUIP_ID(+) and to_date( '2016-01-18 11:46:26', 'yyyy-mm-dd hh24:mi:ss' ) <= p.RPT_DATE and to_date( '2016-01-25 10:23:51', 'yyyy-mm-dd hh24:mi:ss' ) >= p.RPT_DATE order by p.RPT_DATE asc |
요약)
1. 데이터 조회 쿼리 시 ORA-01013 알람발생
2. 여러번 시도 후 한번 성공하면 그 이후로는 조회 잘됨. 조회시간도 빠름.
1. 쿼리 실행도중 Ctrl + C 같은 명령어로 중단시키지는 않았는지
2. 어플리케이션에서 동작시킨 거라면, Session timeout 설정이 동작중이지 않은지
확인해 보시기 바랍니다.
2번의 경우라면, 세션타임아웃 설정이 몇 초인지 확인하고, 해당 쿼리를 튜닝하여 쿼리 실행시간을 줄이거나 세션타임아웃 설정시간을 늘리면 해결될 문제로 보입니다.
질문 하신 내용 중 한번 성공후에 결과 조회가 빠른 이유는 메모리 상에 데이터가 캐싱된 상태이기 때문입니다. 이 후 메모리에서 데이터가 밀려나면 마찬가지로 시간이 오래걸릴 것으로 예상됩니다.
Explain Plan
-------------------------------------------------
SELECT STATEMENTcost estimate:85207
SORT ORDER BY
HASH JOIN OUTER
TABLE ACCESS BY INDEX ROWID:XXXXX,,,,,,TBL_DEV_HIST_PU(1)
INDEX RANGE SCAN:XXXXX,,,,,,PK_TBL_DEV_HIST_PU
TABLE ACCESS FULL:XXXXX,,,,,,TBL_EQUIPMENT_INFO(2)
6개의 행이 선택되었습니다.
답변 감사드립니다. 실행계획은 위와 같습니다..