Arquivos esparsos
Diz-se que um ficheiro em que grande parte dos dados são zeros contém um conjunto de dados esparso. Arquivos como esses são normalmente 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 causa disso, eles são um uso ineficiente de 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 explicitamente gravados são explicitamente definidos como zero. A compactação de arquivos compacta esses intervalos de zeros. No entanto, uma desvantagem da compactação de arquivos é que o tempo de acesso pode aumentar devido à compactação e descompressã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á ativada, o sistema não aloca espaço na unidade de disco rígido para um arquivo, exceto em regiões onde ele contém dados diferentes de zero. Quando uma operação de gravação é tentada onde 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 contendo 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 foram localizados, o sistema de arquivos retorna o número apropriado de zeros no buffer alocado para a operação de leitura. Desta forma, a manutenção do arquivo esparso é transparente para todos os processos que o acessam, e é mais eficiente do que a compactação para este 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 secção
Tópico | Descrição |
---|---|
Operações de arquivo esparsas |
Determine se um sistema de arquivos suporta 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 o GetCompressedFileSize ou 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. |