Share via


스파스 파일

대부분의 데이터가 0인 파일은 스파스 데이터 세트를 포함하고 있다고 합니다. 이와 같은 파일은 일반적으로 처리할 이미지 데이터가 포함된 파일 또는 고속 데이터베이스 내의 행렬과 같이 매우 큽니다. 스파스 데이터 세트가 포함된 파일의 문제는 대부분의 파일에 유용한 데이터가 포함되어 있지 않기 때문에 디스크 공간을 비효율적으로 사용한다는 것입니다.

NTFS 파일 시스템의 파일 압축은 이 문제에 대한 부분적인 해결책입니다. 명시적으로 작성되지 않은 파일의 모든 데이터는 명시적으로 0으로 설정됩니다. 파일 압축은 이러한 0 범위를 압축합니다. 그러나 파일 압축의 단점은 데이터 압축 및 압축 해제로 인해 액세스 시간이 증가할 수 있다는 것입니다.

스파스 파일에 대한 지원은 디스크 공간 사용 효율성을 높이는 또 다른 방법으로 NTFS 파일 시스템에 도입되었습니다. 스파스 파일 기능을 사용하도록 설정하면 시스템에서 0이 아닌 데이터가 포함된 지역을 제외하고 파일에 하드 디스크 드라이브 공간을 할당하지 않습니다. 버퍼에 있는 많은 양의 데이터가 0인 쓰기 작업을 시도하면 0이 파일에 기록되지 않습니다. 대신 파일 시스템은 파일에서 0의 위치를 포함하는 내부 목록을 만들고 모든 읽기 작업 중에 이 목록을 참조합니다. 0이 있는 파일 영역에서 읽기 작업을 수행하면 파일 시스템은 읽기 작업에 할당된 버퍼에 적절한 수의 0을 반환합니다. 이러한 방식으로 스파스 파일의 유지 관리는 해당 파일에 액세스하는 모든 프로세스에 투명하며 이 특정 시나리오의 압축보다 더 효율적입니다.

스파스 파일의 기본 데이터 값은 0입니다. 그러나 다른 값으로 설정할 수 있습니다.

스파스 파일에 대한 자세한 내용은 다음 항목을 참조하세요.

섹션 내용

항목 설명
스파스 파일 작업
GetVolumeInformation 함수를 호출하여 파일 시스템에서 스파스 파일을 지원하는지 여부를 확인합니다.
스파스 파일의 크기 가져오기
GetCompressedFileSize 또는 GetFileSize 함수를 사용하여 파일의 할당된 크기 또는 전체 크기를 가져옵니다.
스파스 파일 및 디스크 할당량
스파스 파일은 실제 할당된 디스크 공간이 아닌 파일의 명목 크기에 따라 사용자 할당량에 영향을 줍니다.