Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este tópico descreve como usar Transact-SQL para verificar se um arquivo de banco de dados do SQL Server é um arquivo esparso e para descobrir seus tamanhos reais e máximos. Arquivos esparsos, que são um recurso do sistema de arquivos NTFS, são usados por instantâneos de bases de dados do SQL Server.
Observação
Durante a criação do instantâneo do banco de dados, ficheiros esparsos são criados utilizando os nomes de ficheiros especificados na instrução CREATE DATABASE. Esses nomes de arquivo são armazenados em sys.master_files na coluna physical_name. No sys.database_files (seja no banco de dados de origem ou em um instantâneo), a coluna physical_name sempre contém os nomes dos arquivos do banco de dados de origem.
Verifique se um arquivo de banco de dados é um arquivo esparso
Na instância do SQL Server:
Selecione a coluna is_sparse de sys.database_files no instantâneo do banco de dados ou de sys.master_files. O valor indica se o arquivo é um arquivo esparso, da seguinte maneira:
1 = Arquivo é um arquivo esparso.
0 = O ficheiro não é um ficheiro esparso.
Descubra o tamanho real de um arquivo esparso
Observação
Arquivos esparsos crescem em incrementos de 64 kilobytes (KB); assim, o tamanho de um arquivo esparso no disco é sempre um múltiplo de 64 KB.
Para visualizar o número de bytes que cada ficheiro esparso de um instantâneo está atualmente a utilizar no disco, consulte a coluna size_on_disk_bytes da vista de gestão dinâmica do SQL Server sys.dm_io_virtual_file_stats.
Para exibir o espaço em disco usado por um ficheiro esparso, clique com o botão direito do rato no ficheiro no Microsoft Windows, clique em Propriedadese examine o valor de Tamanho no disco.
Descubra o tamanho máximo de um arquivo esparso
O tamanho máximo que um ficheiro esparso pode atingir é o tamanho do ficheiro da base de dados de origem correspondente no momento da criação do instantâneo. Para aprender esse tamanho, você pode usar uma das seguintes alternativas:
Usando o prompt de comando do Windows:
Use os comandos dir do Windows.
Selecione o arquivo esparso, abra a caixa de diálogo Propriedades arquivo no Windows e examine o valor Tamanho do.
Na instância do SQL Server:
Selecione o tamanho coluna de sys.database_files no instantâneo do banco de dados ou em sys.master_files. O valor da coluna tamanho reflete o espaço máximo, em páginas SQL, que o instantâneo pode utilizar; este valor é equivalente ao campo Tamanho do no Windows, exceto que é representado em termos do número de páginas SQL no arquivo; o tamanho em bytes é:
( número_de_páginas * 8192)
Exemplo
O script a seguir mostrará o tamanho no disco em kilobytes para cada arquivo esparso. O script também mostrará o tamanho máximo em megabytes para o qual um arquivo esparso pode crescer. Execute o script Transact-SQL no SQL Server Management Studio.
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;
Ver também
Instantâneos de Banco de Dados (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)