이 항목에서는 SQL Server Management Studio 또는 Transact-SQL을 사용하여 SQL Server 2014의 개체를 사용하여 데이터베이스를 축소하는 방법을 설명합니다.
데이터 파일을 축소하면 파일 끝에 있는 데이터 페이지를 파일 앞부분의 비어 있는 공간으로 이동하여 공간을 복구할 수 있습니다. 파일 끝에 사용 가능한 공간을 충분히 확보한 다음 파일 끝에 있는 데이터 페이지를 할당 해제하고 파일 시스템에 반환할 수 있습니다.
시작하기 전에
한계 및 제한사항
데이터베이스는 데이터베이스의 최소 크기보다 작게 만들 수 없습니다. 최소 크기는 데이터베이스를 처음 만들 때 지정한 크기이거나 DBCC SHRINKFILE과 같은 파일 크기 변경 작업을 사용하여 설정한 마지막 명시적 크기입니다. 예를 들어 원래 10MB로 생성된 데이터베이스가 100MB까지 증가한 경우 포함된 모든 데이터를 삭제하더라도 데이터베이스를 10MB 이하로는 축소할 수 없습니다.
데이터베이스가 백업되는 동안에는 데이터베이스를 축소할 수 없습니다. 반대로 데이터베이스에 대한 축소 작업이 진행되는 동안에는 데이터베이스를 백업할 수 없습니다.
XVelocity 메모리 최적화 열 저장소 인덱스를 발견하면, DBCC SHRINKDATABASE가 실패합니다. columnstore 인덱스가 발생하기 전에 완료된 작업이 성공하므로 데이터베이스가 더 작을 수 있습니다. DBCC SHRINKDATABASE를 완료하려면 DBCC SHRINKDATABASE를 실행하기 전에 모든 columnstore 인덱스를 사용하지 않도록 설정한 다음 columnstore 인덱스를 다시 작성합니다.
권장 사항
현재 데이터베이스에 있는 여유(할당되지 않은) 공간의 양을 보려면 자세한 내용은 데이터베이스의 데이터 및 로그 공간 정보 표시를 참조하세요.
데이터베이스를 축소할 때는 다음을 고려하세요.
축소 작업은 테이블 자르기 또는 테이블 삭제 작업과 같이 사용되지 않는 공간을 많이 만드는 작업 후에 가장 효과적입니다.
대부분의 데이터베이스에는 정기적인 일상 작업에 사용 가능한 일정 여유 공간이 필요합니다. 데이터베이스를 반복적으로 축소하고 데이터베이스 크기가 다시 증가하는 것을 확인하면 이는 축소된 공간이 정기적인 작업에 필요했음을 나타냅니다. 이러한 경우 데이터베이스를 반복해서 축소하는 것은 불필요한 작업입니다.
축소 작업은 데이터베이스에서 인덱스의 조각화 상태를 유지하지 않으며 일반적으로 조각화를 어느 정도 증가합니다. 이는 데이터베이스를 반복해서 축소하지 않아야 하는 또 다른 이유입니다.
특정 요구 사항이 없는 한 AUTO_SHRINK 데이터베이스 옵션을 ON으로 설정하지 마세요.
안전
권한
sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버여야 합니다.
SQL Server Management Studio 사용
데이터베이스를 축소하려면
개체 탐색기에서 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.
데이터베이스를 확장한 다음 축소할 데이터베이스를 마우스 오른쪽 단추로 클릭합니다.
작업을 선택하고 축소를 선택한 다음 데이터베이스를 클릭합니다.
데이터베이스
선택한 데이터베이스의 이름을 표시합니다.현재 할당된 공간
선택한 데이터베이스의 총 사용 공간과 사용되지 않은 공간을 표시합니다.사용 가능한 공간
선택한 데이터베이스의 로그 및 데이터 파일의 총 사용 가능한 공간을 표시합니다.사용하지 않은 공간을 해제하기 전에 파일 다시 구성
이 옵션을 선택하면 대상 백분율 옵션을 지정하는 DBCC SHRINKDATABASE를 실행하는 것과 같습니다. 이 옵션을 지우면 TRUNCATEONLY 옵션을 사용하여 DBCC SHRINKDATABASE를 실행하는 것과 같습니다. 기본적으로 대화 상자를 열 때는 이 옵션이 선택되지 않습니다. 이 옵션을 선택하면 사용자가 대상 백분율 옵션을 지정해야 합니다.축소 후 파일의 최대 사용 가능한 공간
데이터베이스를 축소한 후 데이터베이스 파일에 남겨둘 여유 공간의 최대 백분율을 입력합니다. 허용되는 값은 0에서 99 사이입니다.OK를 클릭합니다.
Transact-SQL 사용
데이터베이스를 축소하려면
데이터베이스 엔진에 연결합니다.
표준 도구 모음에서 새 쿼리를 클릭합니다.
다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다. 이 예제에서는 DBCC SHRINKDATABASE 를 사용하여 데이터베이스의 데이터 및 로그 파일 크기를 줄이고 데이터베이스에서
UserDB사용 가능한 공간을 백분율로 허용10합니다.
DBCC SHRINKDATABASE (UserDB, 10);
GO
후속 작업: 데이터베이스를 축소한 후
파일 축소를 위해 이동되는 데이터는 파일 내의 모든 사용 가능한 위치로 분산될 수 있습니다. 이로 인해 인덱스 조각이 발생하고 인덱스 범위를 검색하는 쿼리의 성능이 저하될 수 있습니다. 조각을 제거하려면 축소한 후 파일의 인덱스를 다시 빌드하는 것이 좋습니다.
또한 참조하십시오
파일 축소
sys.databases(Transact-SQL)
sys.database_files(Transact-SQL)
DBCC(Transact-SQL)
DBCC SHRINKFILE(Transact-SQL)
데이터베이스 파일 및 파일 그룹