Visualizzare le dimensioni del file sparse di uno snapshot del database (Transact-SQL)

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

  1. Sull'istanza di SQL Server:

    Selezionare la colonna is_sparse in sys.database_files nello snapshot di database oppure in sys.master_files. Tramite il valore viene indicato se il file è di tipo sparse, come segue:

    1 = il file è di tipo sparse.

    0 = il file non è di tipo 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 usati nel disco da ogni file sparse di uno snapshot, eseguire una query nella colonna size_on_disk_bytes della DMV 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 rilevare la dimensione massima di un file sparse

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 informazioni su tale dimensione, è possibile eseguire una delle operazioni seguenti:

  • Per utilizzare il prompt dei comandi di Windows:

    1. Usare i comandi dir di Windows.

    2. 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 nello 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. Eseguire 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)