login register Sysop! about ME  

2021년 07월 15일 15시 02분 00초,     조회수 : 224
  제목 : delete 타임아웃 원인?
SEQ : 28470 글쓴이 : ksi0824

작성 포맷 : TEXT 모드, 자동 줄바꿈 사용

DELETE FROM orderCompareAddress 
WHERE sidx IN (SELECT  SI.idx
FROM     egsfood.selling_Info AS SI INNER JOIN
               egsfood.sellingOrderCode AS SO ON SI.idx = SO.sidx INNER JOIN
               egsfood.selling_Data AS SD ON SO.idx = SD.soidx INNER JOIN
               egsfood.orderCompareAddress AS CA ON SI.idx = CA.sidx
GROUP BY SI.idx, SD.sState
HAVING  (SD.sState NOT IN (0, 1)))


WHERE sidx IN (이하 쿼리만 따로 돌리면 1초도 않걸리는데 전체를 돌리면 왜 time out 이 발생할까요?



  ksi0824
  2021-07-15(15:06)
WHERE sidx IN (이하 쿼리 결과가 2000개 정도 되는데 결과를 따로 받아서
아래처럼 쿼리를 돌려보면 잘됩니다.

DELETE FROM orderCompareAddress WHERE sidx IN
(464142,464472,367776,414221,... 약 2천개)

위와같이 쿼리를 실행해보면 아주 잘됩니다...

  hskim618
  2021-07-20(20:39)
캐릭 이미지
서브 쿼리만 실행해도 1초이하의 시간이 걸리고
서브 쿼리 결과로 Delete만 할 때도 시간이 얼마 안 걸린다는 말씀이시죠?

  ksi0824
  2021-09-10(16:11)

맞습니다..

비슷하게
delete
뿐 아니라 비슷한 update 쿼리도 where 000 IN ()
이렇게 실행하는 쿼리들이 죄다 타임아웃이 걸리네요
수정 또는 삭제가 되는 위 쿼리 레코드수량이 387020 정도 됩니다
이 수량때문에 영향을 받는걸까요?

  virgo75
  2021-09-12(22:29)
캐릭 이미지
제가 보기에는 너무 많은거 같은데 ?? 천개 씩 제한 하는 쿼리를 만들고, 그걸 프로시저화 해
서 루프를 돌리던지 ? 특정 페이지를 반복하게 만들어야 할듯 한데요 ? rownum을 이용하면
편하게 될듯 하네요 ?



제목 작성자 날짜 조회
delete 타임아웃 원인? (4) ksi0824 2021-07-15 224

 
 
.NET과 Java 동영상 기반의 교육사이트

로딩 중입니다...

서버 프레임워크 지원 : NeoDEEX
based on ASP.NET 3.5
Creative Commons License
{5}
{2} 읽음   :{3} ({4})