DML1 [MSSQL] OPENQUERY 대용량 DML 작업 시 문제점 OPENQUERY를 이용하여 POSTGRESQL에 DELETE 및 INSERT 작업을 진행하였다. 적게는 수천건부터 많게는 수백만건 작업을 해아하는데 어째서인지 만건만 넘어가도 서버가 뻗어버렸다. 그 원인은 바로 OPENQUERY의 메커니즘에 있었다. 예를 들어 DELETE FROM MEMBER 가 있다고 가정하면 그냥 POSTGRESQL에서 실행 시 MEMBER의 ROW 수 만큼 삭제되는데 실행계획을 보면 1 EXCUTE된다. 하지만 OPENQUERY 실행 시 ROW 수 = EXCUTE 수가 된다. 즉 하나를 삭제할 때 마다 모든 테이블을 읽어온다는 뜻이다. INSERT도 마찬가지로 INSERT 작업 후 SELECT문을 실행시켜 모든 데이터를 한번 얻어온다고 한다. 직접 확인은 못했지만 아래 링크를 확.. 2020. 4. 22. 이전 1 다음