Arquivos esparsos
Um arquivo no qual grande parte dos dados é zeros é dito para conter 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 arquivos 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 arquivo compacta esses intervalos de zeros. No entanto, uma desvantagem da compactação de arquivos é que o tempo de acesso pode aumentar devido à compactação de dados e à descompactação.
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 esparsa 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 não 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 onde 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 esparsas |
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 aGetCompressedFileSizeou a funçãoGetFileSize. |
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. |