데이터베이스 스냅샷 스파스 파일의 크기 보기(Transact-SQL)

적용 대상:SQL Server

이 항목에서는 Transact-SQL을 사용하여 SQL Server 데이터베이스 파일이 스파스 파일인지 확인하고 실제 및 최대 크기를 확인하는 방법에 대해 설명합니다. NTFS 파일 시스템의 기능인 스파스 파일은 SQL Server 데이터베이스 스냅샷에서 사용됩니다.

참고 항목

데이터베이스 스냅샷을 만드는 동안 CREATE DATABASE 문의 파일 이름을 사용하여 스파스 파일을 만듭니다. 이러한 파일 이름은 physical_name 열의 sys.master_files 저장됩니다. sys.database_files(원본 데이터베이스에 있든 스냅샷이든) physical_name 열에는 항상 원본 데이터베이스 파일의 이름이 포함됩니다.

데이터베이스 파일이 스파스 파일인지 확인

  1. SQL Server 인스턴스에서 다음을 수행합니다.

    데이터베이스 스냅샷의 sys.database_files 또는 sys.master_files is_sparse 열을 선택합니다. 값은 다음과 같이 파일이 스파스 파일인지 여부를 나타냅니다.

    1 = 스파스 파일입니다.

    0 = 파일이 스파스 파일이 아닙니다.

스파스 파일의 실제 크기 확인

참고 항목

스파스 파일은 64KB(킬로바이트) 증분으로 증가합니다. 따라서 디스크의 스파스 파일 크기는 항상 64KB의 배수입니다.

스냅샷의 각 스파스 파일이 현재 디스크에서 사용하고 있는 바이트 수를 보려면 SQL Server sys.dm_io_virtual_file_stats 동적 관리 뷰의 size_on_disk_bytes 열을 쿼리합니다.

스파스 파일이 사용하는 디스크 공간을 보려면 Microsoft Windows에서 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭하여 디스크 할당 크기 값을 봅니다.

스파스 파일의 최대 크기 확인

스파스가 증가할 수 있는 최대 크기는 스냅샷을 만들 때 해당 원본 데이터베이스 파일의 크기입니다. 이 크기를 알아보려면 다음 대안 중 하나를 사용할 수 있습니다.

  • Windows 명령 프롬프트 사용:

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

    2. 스파스 파일을 선택하고, Windows에서 파일 속성 대화 상자를 열고, 크기 값을 확인합니다.

  • SQL Server 인스턴스에서 다음을 수행합니다.

    데이터베이스 스냅샷의 sys.database_files 또는 sys.master_files 크기 열을 선택합니다. size 열의 값은 SQL 페이지에서 스냅샷이 사용할 수 있는 최대 공간을 반영합니다. 이 값은 파일의 SQL 페이지 수를 기준으로 표시된다는 점을 제외하고 Windows 크기 필드에 해당하며 바이트 단위의 크기는 다음과 같습니다.

    ( number_of_pages * 8192)

다음 스크립트는 각 스파스 파일의 디스크 크기를 킬로바이트 단위로 표시합니다. 또한 스크립트는 스파스 파일이 증가할 수 있는 최대 크기(메가바이트)를 표시합니다. SQL Server Management Studio에서 Transact-SQL 스크립트를 실행합니다.

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;

참고 항목

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