Visualizzare le dimensioni del file sparse di uno snapshot del database (Transact-SQL)View the Size of the Sparse File of a Database Snapshot (Transact-SQL)

In questo argomento si descrive come utilizzare Transact-SQLTransact-SQL per verificare che un file di database di SQL ServerSQL Server sia un file sparse e per conoscere le dimensioni effettive e massime.This topic describes how to use Transact-SQLTransact-SQL to verify that a SQL ServerSQL Server database file is a sparse file and to find out its actual and maximum sizes. I file sparse, che sono una funzionalità del file system NTFS, vengono utilizzati dagli snapshot di database di SQL ServerSQL Server .Sparse files, which are a feature of the NTFS file system, are used by SQL ServerSQL Server database snapshots.

Nota

Durante la creazione dello snapshot di database, i file sparse vengono generati utilizzando i nomi di file specificati nell'istruzione CREATE DATABASE.During database snapshot creation, sparse files are created by using the file names in the CREATE DATABASE statement. Questi nomi di file sono archiviati in sys.master_files nella colonna physical_name .These file names are stored in sys.master_files in the physical_name column. 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.In sys.database_files (whether in the source database or in a snapshot), the physical_name column always contains the names of the source database files.

Verificare che un file di database sia un file sparseVerify that a Database File is a Sparse File

  1. Nell'istanza di SQL ServerSQL Server:On the instance of SQL ServerSQL Server:

    Selezionare la colonna is_sparse in sys.database_files nello snapshot di database oppure in sys.master_files.Select the is_sparse column from either sys.database_files in the database snapshot or from sys.master_files. Tramite il valore viene indicato se il file è di tipo sparse, come segue:The value indicates whether the file is a sparse file, as follows:

    1 = il file è di tipo sparse.1 = File is a sparse file.

    0 = il file non è di tipo sparse.0 = File is not a sparse file.

Conoscere le dimensioni effettive di un file sparseFind Out the Actual Size of a Sparse File

Nota

Le dimensioni dei file sparse aumentano con incrementi di 64 kilobyte (KB) e corrispondono quindi sempre a un multiplo di 64 KB.Sparse files grow in 64-kilobyte (KB) increments; thus, the size of a sparse file on disk is always a multiple of 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 ServerSQL Server.To view the number of bytes that each sparse file of a snapshot is currently using on disk, query the size_on_disk_bytes column of the SQL ServerSQL Serversys.dm_io_virtual_file_stats dynamic management view.

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.To view the disk space used by a sparse file, right-click the file in Microsoft Windows, click Properties, and look at the Size on disk value.

Per rilevare la dimensione massima di un file sparseFind Out the Maximum Size of a Sparse File

La dimensione massima consentita per un file sparse equivale alla dimensione del file di database di origine corrispondente al momento della creazione dello snapshot.The maximum size to which a sparse can grow is the size of the corresponding source database file at the time of the snapshot creation. Per informazioni su tale dimensione, è possibile eseguire una delle operazioni seguenti:To learn this size, you can use one of the following alternatives:

  • Per utilizzare il prompt dei comandi di Windows:Using Windows Command Prompt:

    1. Usare i comandi dir di Windows.Use Windows dir commands.

    2. Selezionare il file sparse, aprire la finestra di dialogo Proprietà relativa a tale file in Windows e verificare il valore Dimensioni .Select the sparse file, open the file Properties dialog box in Windows, and look at the Size value.

  • Nell'istanza di SQL ServerSQL Server:On the instance of SQL ServerSQL Server:

    Selezionare la colonna size in sys.database_files nello snapshot del database oppure in sys.master_files.Select the size column from either sys.database_files in the database snapshot or from 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 è:The value of size column reflects the maximum space, in SQL pages, that the snapshot can ever use; this value is equivalent to the Windows Size field, except that it is represented in terms of the number of SQL pages in the file; the size in bytes is:

    ( numero_di_pagine * 8192)( number_of_pages * 8192)

EsempioExample

Lo script seguente mostra le dimensioni su disco in KB per ogni file sparse.The following script will show the size on disk in kilobytes for each sparse file. Lo script visualizza anche le dimensioni massime in megabyte che un file sparse può raggiungere.The script will also show the maximum size in megabytes to which a sparse file can grow. Eseguire lo script Transact-SQL in SQL Server Management StudioSQL Server Management Studio.Execute the Transact-SQL script in SQL Server Management StudioSQL 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;

Vedere ancheSee Also

Snapshot del database (SQL Server) Database Snapshots (SQL Server)
sys.fn_virtualfilestats (Transact-SQL) sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL) sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL) sys.master_files (Transact-SQL)