Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Questo argomento illustra come usare Transact-SQL per verificare che un file di database di SQL Server sia un file sparse e per conoscere le dimensioni effettive e massime. I file sparse, che sono una funzionalità del file system NTFS, vengono utilizzati dagli snapshot di database di SQL Server.
Nota
Durante la creazione dello snapshot di database, i file sparse vengono generati utilizzando i nomi di file specificati nell'istruzione CREATE DATABASE. Questi nomi di file sono archiviati in sys.master_files nella colonna physical_name . In sys.database_files , sia nel database di origine sia nello snapshot, nella colonna physical_name sono sempre inclusi i nomi dei file del database di origine.
Verificare che un file di database sia un file sparse
Sull'istanza di SQL Server:
Selezionare la colonna is_sparse da sys.database_files nello snapshot di database oppure da sys.master_files. Tramite il valore viene indicato se il file è di tipo sparse, come segue:
1 = il file è un file sparse.
0 = Il file non è un file sparse.
Conoscere le dimensioni effettive di un file sparse
Nota
Le dimensioni dei file sparse aumentano con incrementi di 64 kilobyte (KB) e corrispondono quindi sempre a un multiplo di 64 KB.
Per visualizzare il numero di byte attualmente utilizzati sul disco da ogni file sparse di uno snapshot, eseguire una query nella colonna size_on_disk_bytes della vista di gestione dinamica sys.dm_io_virtual_file_stats di SQL Server.
Per visualizzare lo spazio su disco usato da un file sparse, fare clic con il pulsante destro del mouse sul file in Microsoft Windows, scegliere Proprietàe quindi verificare il valore in Dimensioni su disco .
Per determinare la dimensione massima di un file sparso
La dimensione massima consentita per un file sparse equivale alla dimensione del file di database di origine corrispondente al momento della creazione dello snapshot. Per conoscere questa dimensione, è possibile utilizzare una delle seguenti alternative:
Per utilizzare il prompt dei comandi di Windows:
Usare i comandi dir di Windows.
Selezionare il file sparse, aprire la finestra di dialogo Proprietà relativa a tale file in Windows e verificare il valore Dimensioni .
Sull'istanza di SQL Server:
Selezionare la colonna size in sys.database_files nel snapshot del database oppure in sys.master_files. Il valore della colonna size indica lo spazio massimo, espresso in pagine SQL, consentito per lo snapshot. Questo valore equivale al campo Dimensioni di Windows, ma viene rappresentato in termini di numero di pagine SQL nel file. La dimensione in byte è:
( numero_di_pagine * 8192)
Esempio
Lo script seguente mostra le dimensioni su disco in KB per ogni file sparse. Lo script visualizza anche le dimensioni massime in megabyte che un file sparse può raggiungere. Esegui lo script Transact-SQL in 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;
Vedi anche
Snapshot del database (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)