none
SHRINK 작업 관련 문의 RRS feed

  • 질문

  • 안녕하세요.

    TRUNCATEONLY 옵션을 사용한 SHRINKDATABASE 명령은 로그 파일에만 영향을 준다고 하는데요, 이 말이 MDF 사이즈는 줄지 않고 LDF 사이즈만 줄어든다는 이야기가 맞나요? 만일 맞다고 한다면, 로그 파일에 대한 SHRINKFILE 명령어와 실질적으로 동일한 작동을 하게 되는건지 궁금합니다.

    2019년 9월 17일 화요일 오전 6:34

답변

  • 안녕하세요,

    TRUNCATEONLY 옵션을 사용한 SHRINKDATABASE 명령은 데이터 파일(MDF)의 마지막으로 할당된 부분까지 데이터 파일의 크기를 축소시킵니다. 다만 데이터 파일 내의 어떤 페이지도 이동시키지 않기 때문에 로그 파일에만 영향을 준다고 이야기 하는 것입니다. 따라서 로그 파일에 대한 SHRINKFILE 명령어와 실질적으로 다른 동작을 하게 됩니다. 자세한 사항은 다음 링크의 내용을 참고하시기 바랍니다.

    DBCC SHRINKDATABASE(Transact-SQL)
    DBCC SHRINKFILE(Transact-SQL)

    이러한 옵션 설정없이 디폴트로 사용하게 되면 위의 NOTRUNCATE 와 TRUNCATEONLY 옵션이 차례대로 적용되어 실행됩니다. 즉, NOTRUNCATE 옵션이 먼저 실행되어 데이터 파일 내의 페이지가 앞쪽부터 순서대로 정렬되고, 그 다음 TRUNCATEONLY 옵션이 실행되어 뒤쪽의 빈 공간을 시스템에 반환함으로써 파일 축소가 완료되게 됩니다.

    아울러, 이전 문의에서도 언급해 드린 바와 같이 SHRINK 명령을 자주 사용할 경우 인덱스 조각화가 발생하여 DB 퍼포먼스가 저하될 수 있습니다. 조각화를 방지하려면 축소 후 DB 파일에 대한 인덱스를 다시 작성하는 것이 좋습니다.

    감사합니다.

    ※ 응답이 문제 해결에 도움이 되었다면 [답변으로 표시] 버튼을 눌러 주시기 바랍니다. 이는 유사한 증상을 겪는 다른 사용자들에게 도움이 될 수 있습니다. 만약 TechNet 구독자 지원에 대한 의견이 있다면, tnsf@microsoft.com 으로 문의할 수 있습니다.

    2019년 9월 17일 화요일 오전 8:28
    중재자