MSSQL 사용되지 않는공간 과도한 증가 현상
MSSQL 2016 버젼 이상부터 발생하는 현상이여서 원인을 알기 전까지는 index rebuild 나 index reorganize 를 주기적으로 실행하면서 사용할수 있는 공간으로 유지 했었습니다. 2014 버젼까지는 없던 증상이 왜 2016 이상 버젼부터 발생했는지 이해를 할수 없는 상황에 궁금증이 폭발하여 여기저기 물어보고 구글 검색하다가 찾았습니다.
대량 로드작업 즉 BULK INSERT 를 사용하는 경우 발생하는 현상이였습니다. 2016 버젼부터는 성능을 극대화 하기 위해 기존에 사용되었던 공간에 재활용 하지 않는다는 설명을 해주고 있습니다.
(대량 로드 작업을 실행한 후 사용하지 않는 과도한 공간)
해결방안
다음 쿼리를 사용하여 SQL Server 온라인 상태에서 추적 플래그를 사용하도록 설정할 수 있습니다.
DBCC TRACEON(692,-1)
또는 서비스를 다시 시작할 때 TF 692를 자동으로 사용하도록 설정하는 SQL Server 서비스 시작 매개 변수로 추가할 -T692 수 SQL Server.
Trace Flag 692 to reduce unused space in SQL Server