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.
Come minimo, ogni database di SQL Server ha due file del sistema operativo: un file di dati e un file di log. I file di dati contengono dati e oggetti, ad esempio tabelle, indici, stored procedure e viste. I file di log contengono le informazioni necessarie per recuperare tutte le transazioni nel database. I file di dati possono essere raggruppati in filegroup per scopi di allocazione e amministrazione.
File di database
I database di SQL Server hanno tre tipi di file, come illustrato nella tabella seguente.
Documento | Descrizione |
---|---|
Primaria | Il file di dati primario contiene le informazioni di avvio per il database e punta agli altri file nel database. I dati e gli oggetti utente possono essere archiviati in questo file o in file di dati secondari. Ogni database ha un file di dati primario. L'estensione di file consigliata per i file di dati primari è .mdf. |
Secondario | I file di dati secondari sono facoltativi, sono definiti dall'utente e archiviano i dati utente. I file secondari possono essere usati per distribuire i dati tra più dischi inserendo ogni file in un'unità disco diversa. Inoltre, se un database supera le dimensioni massime per un singolo file di Windows, è possibile usare file di dati secondari in modo che il database possa continuare a crescere. L'estensione di file consigliata per i file di dati secondari è .ndf. |
Log delle transazioni | I file di log delle transazioni contengono le informazioni di log utilizzate per ripristinare il database. Deve essere presente almeno un file di log per ogni database. L'estensione del nome file consigliata per i log delle transazioni è .ldf. |
Ad esempio, è possibile creare un database semplice denominato Sales che include un file primario che contiene tutti i dati e gli oggetti e un file di log che contiene le informazioni del log delle transazioni. In alternativa, è possibile creare un database più complesso denominato Orders che include un file primario e cinque file secondari. I dati e gli oggetti all'interno del database sono distribuiti in tutti e sei i file di log e i quattro file di log contengono le informazioni del log delle transazioni.
Per impostazione predefinita, i dati e i log delle transazioni vengono inseriti nella stessa unità e percorso. Questa operazione viene eseguita per gestire i sistemi a disco singolo. Tuttavia, questo potrebbe non essere ottimale per gli ambienti di produzione. È consigliabile inserire i file di dati e di log in dischi separati.
Filegroup
Ogni database ha un filegroup primario. Questo filegroup contiene il file di dati primario e tutti i file secondari che non vengono inseriti in altri filegroup. I filegroup definiti dall'utente possono essere creati per raggruppare i file di dati per scopi amministrativi, di allocazione dei dati e di posizionamento.
Ad esempio, tre file, Data1.ndf, Data2.ndf e Data3.ndf, possono essere creati rispettivamente in tre unità disco e assegnate al filegroup fgroup1. È quindi possibile creare una tabella specificamente nel filegroup fgroup1. Le query per i dati della tabella verranno distribuite tra i tre dischi; questo migliorerà le prestazioni. Lo stesso miglioramento delle prestazioni può essere ottenuto usando un singolo file creato in un set di striping RAID (matrice ridondante di dischi indipendenti). Tuttavia, file e filegroup consentono di aggiungere facilmente nuovi file ai nuovi dischi.
Tutti i file di dati vengono archiviati nei filegroup elencati nella tabella seguente.
Gruppo di file | Descrizione |
---|---|
Primaria | Filegroup contenente il file primario. Tutte le tabelle di sistema vengono allocate al filegroup primario. |
personalizzato | Qualsiasi filegroup creato specificamente dall'utente quando l'utente crea o successivamente modifica il database. |
Filegroup predefinito
Quando gli oggetti vengono creati nel database senza specificare il filegroup a cui appartengono, vengono assegnati al filegroup predefinito. In qualsiasi momento, un filegroup viene designato come filegroup predefinito. I file nel filegroup predefinito devono essere sufficientemente grandi da contenere eventuali nuovi oggetti non allocati ad altri filegroup.
Il filegroup PRIMARY è il filegroup predefinito, a meno che non venga modificato tramite l'istruzione ALTER DATABASE. L'allocazione per gli oggetti e le tabelle di sistema rimane all'interno del filegroup PRIMARY, non del nuovo filegroup predefinito.
Contenuto correlato
CREATE DATABASE (SQL Server Transact-SQL)