데이터베이스 스냅숏 스파스 파일의 크기 보기(Transact-SQL)View the Size of the Sparse File of a Database Snapshot (Transact-SQL)

이 항목에서는 Transact-SQLTransact-SQL 을 사용하여 SQL ServerSQL Server 데이터베이스 파일이 스파스 파일인지 확인하고 이 파일의 실제 크기 및 최대 크기를 찾는 방법을 보여 줍니다.This topic describes how to use Transact-SQLTransact-SQL to verify that a SQL ServerSQL Server database file is a sparse file and to find out its actual and maximum sizes. NTFS 파일 시스템의 기능인 스파스 파일은 SQL ServerSQL Server 데이터베이스 스냅숏에 사용됩니다.Sparse files, which are a feature of the NTFS file system, are used by SQL ServerSQL Server database snapshots.

참고

데이터베이스 스냅숏을 만드는 동안 CREATE DATABASE 문의 파일 이름을 사용하여 스파스 파일을 만듭니다.During database snapshot creation, sparse files are created by using the file names in the CREATE DATABASE statement. 이러한 파일 이름은 physical_name 열의 sys.master_files 에 저장됩니다.These file names are stored in sys.master_files in the physical_name column. sys.database_files (원본 데이터베이스 또는 스냅숏에 있음)의 physical_name 열에는 항상 원본 데이터베이스 파일 이름이 있습니다.In sys.database_files (whether in the source database or in a snapshot), the physical_name column always contains the names of the source database files.

데이터베이스 파일이 스파스 파일인지 확인Verify that a Database File is a Sparse File

  1. SQL ServerSQL Server인스턴스에서 다음을 수행합니다.On the instance of SQL ServerSQL Server:

    데이터베이스 스냅숏의 sys.database_files 또는 sys.master_files 에서 is_sparse열을 선택합니다.Select the is_sparse column from either sys.database_files in the database snapshot or from sys.master_files. 이 값은 다음과 같이 파일이 스파스 파일인지 여부를 나타냅니다.The value indicates whether the file is a sparse file, as follows:

    1 = 스파스 파일입니다.1 = File is a sparse file.

    0 = 스파스 파일이 아닙니다.0 = File is not a sparse file.

스파스 파일의 실제 크기 확인Find Out the Actual Size of a Sparse File

참고

스파스 파일은 64KB씩 증분되므로 디스크상의 스파스 파일 크기는 항상 64KB의 배수입니다.Sparse files grow in 64-kilobyte (KB) increments; thus, the size of a sparse file on disk is always a multiple of 64 KB.

스냅숏의 각 스파스 파일이 현재 디스크에서 사용 중인 바이트 수를 확인하려면 sys.dm_io_virtual_file_stats 동적 관리 뷰의 SQL ServerSQL Serversize_on_disk_bytes 열을 쿼리합니다.To view the number of bytes that each sparse file of a snapshot is currently using on disk, query the size_on_disk_bytes column of the SQL ServerSQL Serversys.dm_io_virtual_file_stats dynamic management view.

스파스 파일이 사용하는 디스크 공간을 보려면 Microsoft Windows에서 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭하여 디스크 할당 크기 값을 봅니다.To view the disk space used by a sparse file, right-click the file in Microsoft Windows, click Properties, and look at the Size on disk value.

스파스 파일의 최대 크기 확인Find Out the Maximum Size of a Sparse File

스파스 파일이 증가할 수 있는 최대 크기는 스냅숏을 작성한 시점의 해당 원본 데이터베이스 파일 크기입니다.The maximum size to which a sparse can grow is the size of the corresponding source database file at the time of the snapshot creation. 이 크기를 확인하는 데 사용할 수 있는 방법은 다음과 같습니다.To learn this size, you can use one of the following alternatives:

  • Windows 명령 프롬프트 사용:Using Windows Command Prompt:

    1. Windows dir 명령을 사용합니다.Use Windows dir commands.

    2. Windows에서 스파스 파일을 선택하고 속성 대화 상자를 연 다음 크기 값을 봅니다.Select the sparse file, open the file Properties dialog box in Windows, and look at the Size value.

  • SQL ServerSQL Server인스턴스에서 다음을 수행합니다.On the instance of SQL ServerSQL Server:

    데이터베이스 스냅숏의 sys.database_files 또는 sys.master_files 에서 size열을 선택합니다.Select the size column from either sys.database_files in the database snapshot or from sys.master_files. size 열의 값은 SQL 페이지에서 스냅숏이 사용할 수 있는 최대 공간을 반영합니다. 이 값은 파일의 SQL 페이지 수를 기준으로 표시된다는 점을 제외하고 Windows 크기 필드에 해당하며 바이트 단위의 크기는 다음과 같습니다.The value of size column reflects the maximum space, in SQL pages, that the snapshot can ever use; this value is equivalent to the Windows Size field, except that it is represented in terms of the number of SQL pages in the file; the size in bytes is:

    ( number_of_pages * 8192)( number_of_pages * 8192)

예제Example

다음 스크립트는 각 스파스 파일에 대한 디스크 크기(킬로바이트)를 보여 줍니다.The following script will show the size on disk in kilobytes for each sparse file. 스크립트는 또한 스파스 파일이 늘어날 수 있는 최대 크기(메가바이트)도 보여 줍니다.The script will also show the maximum size in megabytes to which a sparse file can grow. SQL Server Management StudioSQL Server Management Studio에서 TRANSACT-SQL 스크립트를 실행합니다.Execute the Transact-SQL script in SQL Server Management StudioSQL Server Management Studio.

SELECT  DB_NAME(sd.source_database_id) AS [SourceDatabase], 
        sd.name AS [Snapshot],
        mf.name AS [Filename], 
        size_on_disk_bytes/1024 AS [size_on_disk (KB)],
        mf2.size/128 AS [MaximumSize (MB)]
FROM sys.master_files mf
JOIN sys.databases sd
    ON mf.database_id = sd.database_id
JOIN sys.master_files mf2
    ON sd.source_database_id = mf2.database_id
    AND mf.file_id = mf2.file_id
CROSS APPLY sys.dm_io_virtual_file_stats(sd.database_id, mf.file_id)
WHERE mf.is_sparse = 1
AND mf2.is_sparse = 0
ORDER BY 1;

관련 항목:See Also

데이터베이스 스냅숏(SQL Server) Database Snapshots (SQL Server)
sys.fn_virtualfilestats(Transact-SQL) sys.fn_virtualfilestats (Transact-SQL)
sys.database_files(Transact-SQL) sys.database_files (Transact-SQL)
sys.master_files(Transact-SQL) sys.master_files (Transact-SQL)