BCP 실행시 동일 세션에서 여러개의 BULK INSERT 문으로 표시되는 이유
BCP 실행시 동일 세션에서 여러개의 BULK INSERT 문으로 표시되는 이유
· Version : SQL Server
SQL Server에서 BCP 명령을 사용하여 대량의 데이터를 로드할때, sys.dm_exec_requests 항목을 모니터링 해보면 command 항목에 BCP 대신 BULK INSERT 라고 표시되어 있다. 아래 표를 보면 동일한 세션에 BULK INSERT라고 여러개의 작업이 표시된 것을 확인할 수 있다.
cpu_time |
total_elapsed_time |
writes |
session_id |
start_time |
command |
1387 |
1396 |
32 |
51 |
2018-08-07 00:45:42.670 |
BULK INSERT |
1930 |
1941 |
66 |
51 |
2018-08-07 00:46:02.087 |
BULK INSERT |
632 |
638 |
32 |
51 |
2018-08-07 00:46:23.313 |
BULK INSERT |
단일 BULK INSERT 대신 동일한 세션에 BULK INSERT 배치가 여러번 발생하는 이유는 무엇일까? BCP 명령을 사용할때, 옵션 -b (Batch Size) 를 지정하면서 배치크기에 도달할때까지 행이 스트링되고 커밋이 발생한다. 그리고 후속 행에 대해서 새로운 배치가 실행된다. 따라서 BCP가 아닌 일련의 BULK INSERT 작업이 표시되는 것이다.
[참고자료]
· https://blogs.msdn.microsoft.com/bobsql/2018/08/07/sql-mysteries-tracing-bcp-might-fool-you/
· https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-2017
2019-09-12 / Sungwook Kang / http://sungwookkang.com
SQL Server BCP, Bulk Load, BULK INSERT