Condividi tramite


Panoramica su file e gruppi di file

Definendo e utilizzando gruppi di file aggiuntivi, è possibile migliorare le prestazioni del database e gestire meglio il backup e il ripristino degli oggetti di database. Ad esempio, è possibile definire gruppi di file su dischi fisici differenti per ridurre il tempo di accesso. Se si associano tutti gli oggetti di database in uno schema a un particolare filegroup, sarà in seguito possibile eseguire il backup e il ripristino simultaneo di tali oggetti. Per ulteriori informazioni sui filegroup, vedere il seguente argomento sul sito Web Microsoft: File e filegroup fisici del database.

Nota

Se si utilizza un progetto di applicazione livello dati (DAC), non è possibile definire file o filegroup. È necessario utilizzare un progetto di database .dbschema se si desidera controllare i file e i filegroup nel database.

Comportamento

Prima di definire file e filegroup nel progetto di database, è consigliabile considerare i tipi di comportamento seguenti in modo da poter distinguere tra il comportamento previsto e quello imprevisto.

Importazione di schemi

Quando si importa uno schema da un database esistente, si importano anche le definizioni di file e filegroup del database in questione.

Confronto di schemi

Confrontando gli schemi, è possibile determinare se oggetti denominati in modo identico sono stati creati in filegroup con nomi diversi. È anche possibile determinare se un gruppo di file è stato aggiunto o rimosso dall’ origine ma non dalla destinazione. Per ulteriori informazioni su come confrontare gli schemi, vedere Procedura: confrontare gli schemi di database.

Compilazione e distribuzione di progetti di database

Non è possibile rendere file e gruppi di file specifici di particolari configurazioni della build. Tuttavia, è possibile definire i file in termini di variabili di MSBuild che possono essere specifiche di una configurazione. Utilizzando questo approccio è possibile, ad esempio, utilizzare percorsi e nomi file nell'ambiente di sviluppo isolato differenti da quelli nel server di gestione temporanea.

Eliminazione di filegroup, file e file di log

Se si elimina un filegroup da un progetto di database, è possibile distribuire tale modifica a un nuovo database, tuttavia la modifica verrà ignorata se viene distribuita a un database esistente. Quando si elimina un gruppo di file da un progetto di database, si elimina anche qualsiasi file associato a tale gruppo di file. Qualsiasi oggetto nel progetto di database presente nel filegroup eliminato verrà associato a uno stato di errore. Per risolvere gli errori è necessario ricreare il gruppo di file o modificare le definizioni di oggetto per associarle a un altro gruppo di file. In questo caso, non è possibile distribuire il progetto di database fino a quando gli errori non vengono risolti.

Non è possibile eliminare il gruppo di file principale. È necessario avere un gruppo di file predefinito specificato. Se si rimuove l’unico file in un gruppo di file, verrà visualizzato un avviso nella finestra Elenco errori per indicare che la definizione del gruppo di file è incompleta. Inoltre, non è possibile rimuovere l’unico file di log in un progetto di database. Un progetto di database deve sempre avere almeno un file di log definito.

Limiti

Quando si distribuiscono modifiche a filegroup, si rinominano filegroup o si definiscono oggetti di database in filegroup di sola lettura, è possibile rilevare le limitazioni seguenti.

Distribuzione delle modifiche

Se si aggiunge un gruppo di file in un progetto di database, è possibile distribuire tale modifica a un database nuovo o esistente. Se si elimina un gruppo di file o si modificano i file o le proprietà, è possibile distribuire tali modifiche a un database nuovo. Tuttavia, eliminazioni e modifiche di gruppi di file vengono ignorate se si distribuisce il progetto a un database esistente. Se il nome di un gruppo di file nel progetto di database corrisponde al nome di un gruppo di file sulla destinazione, si presuppone che i gruppi di file siano gli stessi.

Se si rinomina un filegroup e lo si distribuisce a un database esistente, viene creato un filegroup con il nome nuovo e il filegroup esistente rimane immutato.

Ridenominazione di gruppi di file nelle definizioni di oggetto

È possibile utilizzare il refactoring di database per aggiornare nomi di filegroup nelle definizioni degli oggetti di database. Per ulteriori informazioni, vedere Ridenominazione di tutti i riferimenti a un oggetto di database.

Definizione di oggetti in filegroup di sola lettura

Anche se si seleziona la casella di controllo Sola lettura per un filegroup, è comunque possibile definirvi oggetti nel progetto di database. Se tuttavia si tenta di distribuire tali modifiche a un database esistente, l'operazione avrà esito negativo. Quando si distribuiscono le modifiche a un database nuovo, gli oggetti vengono creati come se la casella di controllo Sola lettura fosse deselezionata. Una volta creati gli oggetti, il filegroup viene impostato come di sola lettura nel database.

Utilizzo di applicazioni livello dati

Se si crea un progetto di applicazione livello dati, non è possibile definire file o filegroup per il progetto in questione. Inoltre, se si converte un progetto di database in un progetto di applicazione livello dati, eventuali file e filegroup definiti in tale progetto di database causeranno errori. Per ulteriori informazioni, vedere Conversione tra progetti applicazione del livello dati e progetti di database.

Vedere anche

Attività

Procedura: specificare script pre-distribuzione o di post-distribuzione

Procedura: aggiungere file e gruppi di file

Concetti

Panoramica delle impostazioni del progetto di database