Informazioni sulle dimensioni dei file sparse negli snapshot del database

Uno snapshot del database utilizza uno o più file sparse per archiviare i dati. Durante la creazione dello snapshot del database, i file sparse vengono generati utilizzando i nomi di file specificati nell'istruzione CREATE DATABASE. Tali nomi di file sono archiviati in sys.master_files nella colonna physical_name.

[!NOTA] In sys.database_files, sia nel database di origine che nello snapshot, la colonna physical_name include sempre i nomi dei file del database di origine.

I file sparse sono una funzionalità del file system NTFS. Inizialmente in un file sparse non è incluso alcun dato utente e lo spazio su disco per i dati utente non viene allocato per tale file. Per informazioni generali sull'utilizzo di file sparse in snapshot del database e sulla modalità di incremento degli snapshot del database, vedere Funzionamento degli snapshot del database.

Un file sparse appena creato richiede poco spazio su disco. Lo spazio su disco viene allocato gradualmente dal file system NTFS mano a mano che i dati vengono scritti nel file sparse. È possibile che un file sparse raggiunga dimensioni elevate. Se uno snapshot del database esaurisce lo spazio a disposizione, viene contrassegnato come sospetto e deve essere rimosso. La rimozione non influisce tuttavia sul database di origine e le azioni eseguite su tale database procedono normalmente.

La dimensione dei file sparse aumenta con incrementi di 64 kilobyte (KB) e corrisponde quindi sempre a un multiplo di 64 KB. L'ultimo incremento di 64 KB include da una a otto pagine da 8 KB, a seconda del numero di pagine copiate dal database di origine. Ciò significa che, in media, la dimensione di un file sparse supera leggermente lo spazio effettivamente occupato dalle pagine.

  • Per rilevare la dimensione effettiva di un file sparse
    La funzione di sistema valutata a livello di tabella fn_virtualfilestats, che restituisce il numero corrente di byte di un file nella colonna BytesOnDisk, consente di rilevare il numero di byte attualmente utilizzati su disco da ogni file sparse dello snapshot. Questa funzione accetta i valori database_id e file_id. L'ID di database dello snapshot e gli ID di file di ogni file sparse associato vengono visualizzati nella vista del catalogo sys.master_files. Per ulteriori informazioni, vedere sys.master_files (Transact-SQL) e fn_virtualfilestats (Transact-SQL).
    In alternativa, per visualizzare lo spazio su disco utilizzato da un file sparse, fare clic con il pulsante destro del mouse sul file in Microsoft Windows, scegliere Proprietà e quindi verificare il valore 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:
    • Utilizzare 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.
    • Selezionare la colonna size in sys.database_files nello snapshot del database oppure in sys.master_files. La colonna size in sys.database_files o sys.master_files indica lo spazio massimo, espresso in pagine SQL, consentito allo snapshot. Tale valore equivale al campo Dimensioni di Windows, ma viene rappresentato in termini di numero di pagine SQL nel file. La dimensione in byte equivale a:
      ( number_of_pages * 8192)

Vedere anche

Concetti

Snapshot del database
Funzionamento degli snapshot del database

Altre risorse

fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005