select a.comctrlno from company as a, admin_data as b where a.title like b.company and a.tel like b.tel_01_01 and a.accessfrom BETWEEN '20070101' AND '20090131' and b.bill = '';
이런식으로 조인을 걸어 A테이블과 B테이블의 자료를 비교해 원하는 자료를 뽑아냈습니다.
이 조건에 충적하는 자료들의 enabled 컬럼의 값을 모두 4로 변경하고자 다음과 같은 쿼리를 날렸습니다.
update company as a, admin_data as b set a.enabled = 4 where a.title like b.company and a.tel like b.tel_01_01 and a.accessfrom BETWEEN '20070101' AND '20090131' and b.bill = '';
위의 select쿼리는 2분 정도에 모두 완료된 반면 아래의 update쿼리는 10분이 넘는 시간이 걸리뿐더러
작업중인 DB를 사용하려고 하면 Locked걸리는 문제로 update쿼리를 강제종료하고 데이터를 살펴보니 약 3분의 1정도의 데이터만 변경이 완료 되어 있었습니다.
여기서 드는 의문중 하나가 여기서 그냥 기다리면 저 쿼리가 모두 수행이 될런지와...
그렇다면 쿼리 개선의 여지는 없는지에 대해 문의 드립니다.
감사합니다.
|