본문 바로가기
공부/Ms-sql

mssql 대용량 INSERT 구문, 10000건 정도

by 리빈아빠 2018. 12. 7.
반응형

서론

오라클에서는 nologgin 이랑 힌트로 insert select 할 시에 사용하면 되었는데 mssql은 뭘해야 될지 몰랐다. 그래서 검색해보니 그냥 아래와 같이 하면 될 것 같다. 10만건 넘어가면 굳이 안해도 될 것 같다.

본론

tablock

insert into mssql.스키마.dbo.테이블명 with(tablock)
select * from 테이블명 with(nolock)

아래는 굳이 nolock은 안해도 될 것 같고 insert할 테이블에 talock 옵션만 걸면 아예 로그를 안 쌓는건 아니고 최소한의 로그를 쌓기 때문에 좀 더 빨리 insert가 가능해진다. dblink가 걸린 상태에서 다른 DB에서 동일 테이블을 만들고 insert를 해야하는 경우에 만건 정도 테이블이면 그래도 빨리 insert가 되는 것 같다. 우편번호 정보를 옮기기 위해서 했었는데 네트워크 상태에 따라 다르겠지만 약 6분동안 오만건이 insert 되었다. 옵션 없이 했을 경우에는 10분이 넘어도 insert 중이여서 취소하고 구글링 해서 옵션 달고 처리한 경우

결론

오라클이 구축하거나 사용하는건 좀 불편하지만 확실히 특정상황에서 할 수 있는 방법들이 좀 더 많은 것 같다. 이상하게 mssql은 관련 글이 적네..