Partilhar via


Arquivos esparsos

Um arquivo no qual grande parte dos dados é zeros é dito que contém um conjunto de dados esparso. Arquivos como esses normalmente são muito grandes, por exemplo, um arquivo que contém dados de imagem a serem processados ou uma matriz dentro de um banco de dados de alta velocidade. O problema com arquivos que contêm conjuntos de dados esparsos é que a maioria do arquivo não contém dados úteis e, por isso, eles são um uso ineficiente do espaço em disco.

A compactação de arquivo no sistema de arquivos NTFS é uma solução parcial para o problema. Todos os dados no arquivo que não são gravados explicitamente são definidos explicitamente como zero. A compactação de arquivos compacta esses intervalos de zeros. No entanto, uma desvantagem da compactação de arquivo é que o tempo de acesso pode aumentar devido à compactação e descompactação de dados.

O suporte para arquivos esparsos é introduzido no sistema de arquivos NTFS como outra maneira de tornar o uso de espaço em disco mais eficiente. Quando a funcionalidade de arquivo esparso está habilitada, o sistema não aloca espaço em disco rígido para um arquivo, exceto em regiões em que ele contém dados diferentes de zero. Quando uma operação de gravação é tentada em que uma grande quantidade de dados no buffer é zeros, os zeros não são gravados no arquivo. Em vez disso, o sistema de arquivos cria uma lista interna que contém os locais dos zeros no arquivo e essa lista é consultada durante todas as operações de leitura. Quando uma operação de leitura é executada em áreas do arquivo em que zeros estavam localizados, o sistema de arquivos retorna o número apropriado de zeros no buffer alocado para a operação de leitura. Dessa forma, a manutenção do arquivo esparso é transparente para todos os processos que o acessam e é mais eficiente do que a compactação para esse cenário específico.

O valor de dados padrão de um arquivo esparso é zero; no entanto, ele pode ser definido como outros valores.

Para obter mais informações sobre arquivos esparsos, consulte os tópicos a seguir.

Nesta seção

Tópico Descrição
Operações de arquivo esparso
Determine se um sistema de arquivos dá suporte a arquivos esparsos chamando a função GetVolumeInformation.
Obtendo o tamanho de um arquivo esparso
Obtenha o tamanho alocado ou o tamanho total de um arquivo usando a função GetCompressedFileSize ou GetFileSize .
Arquivos esparsos e cotas de disco
Um arquivo esparso afeta as cotas de usuário pelo tamanho nominal do arquivo, não pela quantidade real alocada de espaço em disco.