파일 축소Shrink a File

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 데이터 또는 로그 파일을 축소하는 방법에 대해 설명합니다.This topic describes how to shrink a data or log file in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

파일 끝에 있는 데이터 페이지를 파일 앞의 사용되지 않은 공간으로 이동하여 데이터 파일을 축소하면 공간이 복구됩니다.Shrinking data files recovers space by moving pages of data from the end of the file to unoccupied space closer to the front of the file. 파일 끝에 사용 가능한 공간을 충분히 확보한 다음 파일 끝에 있는 데이터 페이지를 할당 해제하고 파일 시스템에 반환할 수 있습니다.When enough free space is created at the end of the file, data pages at end of the file can deallocated and returned to the file system.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

제한 사항 Limitations and Restrictions

  • 주 데이터 파일은 model 데이터베이스에 있는 주 파일의 크기보다 작게 만들 수 없습니다.The primary data file cannot be made smaller than the size of the primary file in the model database.

권장 사항 Recommendations

  • 파일 축소를 위해 이동되는 데이터는 파일 내의 모든 사용 가능한 위치로 분산될 수 있습니다.Data that is moved to shrink a file can be scattered to any available location in the file. 이로 인해 인덱스 조각화가 발생하여 인덱스 범위를 검색하는 쿼리 성능이 저하될 수 있습니다.This causes index fragmentation and can slow the performance of queries that search a range of the index. 조각화를 방지하려면 축소 후 파일에 대한 인덱스를 다시 작성하는 것이 좋습니다.To eliminate the fragmentation, consider rebuilding the indexes on the file after shrinking.

보안 Security

사용 권한 Permissions

sysadmin 고정 서버 역할의 멤버 또는 db_owner 고정 데이터베이스 역할의 멤버여야 합니다.Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

SQL Server Management Studio 사용 Using SQL Server Management Studio

데이터 또는 로그 파일을 축소하려면To shrink a data or log file

  1. 개체 탐색기에서 SQL Server 데이터베이스 엔진SQL Server Database Engine 의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.In Object Explorer, connect to an instance of the SQL Server 데이터베이스 엔진SQL Server Database Engine and then expand that instance.

  2. 데이터베이스 를 확장한 다음 축소할 데이터베이스를 마우스 오른쪽 단추로 클릭합니다.Expand Databases and then right-click the database that you want to shrink.

  3. 태스크, 축소를 차례로 가리킨 다음 파일을 클릭합니다.Point to Tasks, point to Shrink, and then click Files.

    데이터베이스Database
    선택한 데이터베이스의 이름을 표시합니다.Displays the name of the selected database.

    파일 유형File type
    파일의 유형을 선택합니다.Select the file type for the file. 데이터로그 파일 중에 선택할 수 있습니다.The available choices are Data and Log files. 기본 설정은 데이터입니다.The default selection is Data. 다른 파일 그룹 유형을 선택하면 변경 내용에 따라 다른 필드의 선택 내용도 변경됩니다.Selecting a different filegroup type changes the selections in the other fields accordingly.

    파일 그룹Filegroup
    위의 파일 유형 에서 선택한 내용과 연관된 파일 그룹 목록에서 파일 그룹을 선택합니다.Select a filegroup from the list of Filegroups associated with the selected File type above. 다른 파일 그룹을 선택하면 변경 내용에 따라 다른 필드의 선택 내용도 변경됩니다.Selecting a different filegroup changes the selections in the other fields accordingly.

    파일 이름File name
    선택한 파일 그룹 및 파일 형식의 사용 가능한 파일 목록에서 파일을 선택합니다.Select a file from the list of available files of the selected filegroup and file type.

    위치Location
    현재 선택된 파일의 전체 경로를 표시합니다.Displays the full path to the currently selected file. 이 경로는 편집할 수 없지만 클립보드로 복사할 수는 있습니다.The path is not editable, but it can be copied to the clipboard.

    현재 할당된 공간Currently allocated space
    데이터 파일의 경우 현재 할당된 공간을 표시합니다.For data files, displays the current allocated space. 로그 파일의 경우 DBCC SQLPERF(LOGSPACE)의 출력에 따라 계산된 현재 할당된 공간을 표시합니다.For log files, displays the current allocated space computed from the output of DBCC SQLPERF(LOGSPACE).

    사용 가능한 공간Available free space
    데이터 파일의 경우 DBCC SHOWFILESTATS(파일 ID)의 출력에 따라 계산된 현재 사용 가능한 빈 공간을 표시합니다.For data files, displays the current available free space computed from the output of DBCC SHOWFILESTATS(fileid). 로그 파일의 경우 DBCC SQLPERF(LOGSPACE)의 출력에 따라 계산된 현재 사용 가능한 빈 공간을 표시합니다.For log files, displays the current available free space computed from the output of DBCC SQLPERF(LOGSPACE).

    사용하지 않은 공간 해제Release unused space
    파일에서 사용되지 않는 공간을 운영 체제에 반환하고 마지막으로 할당된 익스텐트까지 파일을 축소하여 데이터를 이동하지 않고 파일 크기를 줄입니다.Cause any unused space in the files to be released to the operating system and shrink the file to the last allocated extent, reducing the file size without moving any data. 할당되지 않은 페이지에 행을 다시 할당하지 않습니다.No attempt is made to relocate rows to unallocated pages.

    사용하지 않은 공간을 해제하기 전에 페이지 다시 구성Reorganize pages before releasing unused space
    대상 파일 크기를 지정하는 DBCC SHRINKFILE을 실행한 것과 동일합니다.Equivalent to executing DBCC SHRINKFILE specifying the target file size. 이 옵션을 선택한 경우 사용자가 파일을 다음 크기로 축소 입력란에 대상 파일 크기를 지정해야 합니다.When this option is selected, the user must specify a target file size in the Shrink file to box.

    파일을 다음 크기로 축소Shrink file to
    축소 작업의 대상 파일 크기를 지정합니다.Specifies the target file size for the shrink operation. 이 크기는 현재 할당된 공간의 크기보다 크고 파일에 할당된 총 익스텐트 수보다 적어야 합니다.The size cannot be less than the current allocated space or more than the total extents allocated to the file. 최소값보다 작거나 최대값보다 큰 값을 입력한 경우 포커스를 이동하거나 도구 모음의 단추를 클릭하면 최소값 또는 최대값으로 되돌아갑니다.Entering a value beyond the minimum or the maximum will revert to the min or the max once the focus is changed or when any of the buttons on the toolbar are clicked.

    같은 파일 그룹의 다른 파일로 데이터를 마이그레이션하여 파일 비우기Empty file by migrating the data to other files in the same filegroup
    지정한 파일의 모든 데이터를 마이그레이션합니다.Migrate all data from the specified file. 이 옵션을 선택하면 ALTER DATABASE 문을 사용하여 해당 파일을 삭제할 수 있습니다.This option allows the file to be dropped using the ALTER DATABASE statement. 이 옵션은 EMPTYFILE 옵션을 사용하여 DBCC SHRINKFILE을 실행하는 것과 같은 기능을 수행합니다.This option is equivalent to executing DBCC SHRINKFILE with the EMPTYFILE option.

  4. 파일 형식 및 파일 이름을 선택합니다.Select the file type and file name.

  5. 선택적으로 사용하지 않은 공간 해제 확인란을 선택합니다.Optionally, select the Release unused space check box.

    이 옵션을 선택하면 파일에서 사용되지 않은 공간이 해제되어 운영 체제에서 사용할 수 있게 되며 파일이 마지막으로 할당된 범위로 축소됩니다.Selecting this option causes any unused space in the file to be released to the operating system and shrinks the file to the last allocated extent. 이렇게 하면 데이터를 이동하지 않아도 파일 크기가 줄어듭니다.This reduces the file size without moving any data.

  6. 선택적으로 사용하지 않은 공간을 해제하기 전에 파일을 다시 구성 확인란을 선택합니다.Optionally, select the Reorganize files before releasing unused space check box. 이 확인란을 선택하면 파일을 다음 크기로 축소 값을 반드시 지정해야 합니다.If this is selected, the Shrink file to value must be specified. 기본적으로 이 옵션은 선택되어 있지 않습니다.By default, the option is cleared.

    이 옵션을 선택하면 파일에서 사용되지 않은 공간이 해제되어 운영 체제에서 사용할 수 있게 되며 행의 위치를 할당되지 않은 페이지에 지정하려고 합니다.Selecting this option causes any unused space in the file to be released to the operating system and tries to relocate rows to unallocated pages.

  7. 선택적으로 데이터베이스를 축소한 후 데이터베이스 파일에 남겨둘 여유 공간의 최대 비율을 입력합니다.Optionally, enter the maximum percentage of free space to be left in the database file after the database has been shrunk. 허용되는 값은 0에서 99까지입니다.Permissible values are between 0 and 99. 이 옵션은 사용하지 않은 공간을 해제하기 전에 파일 다시 구성 을 활성화한 경우에만 사용할 수 있습니다.This option is only available when Reorganize files before releasing unused space is enabled.

  8. 선택적으로 같은 파일 그룹의 다른 파일로 데이터를 마이그레이션하여 파일 비우기 확인란을 선택합니다.Optionally, select the Empty file by migrating the data to other files in the same filegroup check box.

    이 옵션을 선택하면 지정된 파일의 모든 데이터가 파일 그룹 내 다른 파일로 이동합니다.Selecting this option moves all data from the specified file to other files in the filegroup. 그런 다음 빈 파일을 삭제할 수 있습니다.The empty file can then be deleted. 이 옵션은 EMPTYFILE 옵션을 사용하여 DBCC SHRINKFILE을 실행하는 것과 같은 기능을 수행합니다.This option is the same as executing DBCC SHRINKFILE with the EMPTYFILE option.

  9. 확인을 클릭합니다.Click OK.

Transact-SQL 사용 Using Transact-SQL

데이터 또는 로그 파일을 축소하려면To shrink a data or log file

  1. 데이터베이스 엔진Database Engine에 연결합니다.Connect to the 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.From the Standard bar, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 이 예에서는 DBCC SHRINKFILE 을 사용하여 DataFile1 데이터베이스에 있는 UserDB 이라는 데이터 파일의 크기를 7MB로 축소합니다.This example uses DBCC SHRINKFILE to shrink the size of a data file named DataFile1 in the UserDB database to 7 MB.

    USE UserDB;
    GO
    DBCC SHRINKFILE (DataFile1, 7);
    GO
    

참고 항목See Also

DBCC SHRINKDATABASE(Transact-SQL) DBCC SHRINKDATABASE (Transact-SQL)
데이터베이스 축소 Shrink a Database
데이터베이스에서 데이터 또는 로그 파일 삭제 Delete Data or Log Files from a Database
sys.databases(Transact-SQL) sys.databases (Transact-SQL)
sys.database_files(Transact-SQL) sys.database_files (Transact-SQL)