안녕하세요. SQL 관련 질문드립니다.
DML 과 관련된 SP 가 하나 있습니다.
해당 SP 는 사용자로부터 입력받은 데이터를 TABLE_A에 INSERT 하고
입력받은 TABLE_A 데이터와 다른 TABLE_B 데이터를 집계하여 TABLE_C 에 INSERT 또는 UPDATE, DELETE 작업을 수행하고 있습니다.
한개의 데이터를 처리함에 있어 약 0.08초 정도 소요되며, 한번에 처리되는 데이터는 약 2,000 ~ 6,000건 정도가 처리됩니다.
이를 처리하기 위한 최소한의 시간은 6,000건 기준일 때 8분정도입니다.
질문 드립니다.
6,000건을 처리하는 중에 8분동안 다른 세션을 통해 TABLE_C에 접근할 경우 조회하는데 있어 거의 무응답에 가깝습니다.
처리가 완료되면 비로소 정상적으로 조회가 되나, 해당 테이블과 연관된 모든 쿼리문이 작동이 불가한 상태가 되어버립니다.
대부분 조회하는 쿼리에서는 TABLE_C with (NOLOCK) 을 기술하여 운영중에 있습니다.
어디서부터 접근해야 이 문제를 해결할 수 있는지 방안이 없어 전문가분들의 의견을 여쭙고자 합니다.
Comment 1
-
catchv
2021.04.08 11:12
http://whoisactive.com/
해당 프로시져로 wait 현상이 무엇인지 확인해보시면 될 것 같습니다.