Esporta (0) Stampa
Espandi tutto

USE FEDERATION (database SQL di Azure)

Aggiornamento: aprile 2014

Questo argomento è OBSOLETO. La versione più recente è disponibile in Guida di riferimento a Transact-SQL 14. Vedere USE FEDERATION.

ImportantImportante
L'implementazione corrente delle federazioni verrà ritirata con i livelli di servizio Web e Business. Valutare l'opportunità di distribuire soluzioni di partizionamento orizzontale personalizzato per ottimizzare la scalabilità, la flessibilità e le prestazioni. Per ulteriori informazioni sul partizionamento orizzontale personalizzato, vedere Scalabilità orizzontale di database SQL di Azure.

Si connette a una federazione.

Convenzioni della sintassi (database SQL di Azure)

USE FEDERATION ROOT
    WITH RESET


USE FEDERATION federation_name (distribution_name = value)
    WITH [FILTERING={ON|OFF},] RESET
[;]

ROOT
Punta una connessione esistente alla radice della federazione. Se connesso a un membro della federazione, la connessione viene reimpostata sul database radice della federazione. Se connesso a qualsiasi altro database, non ha alcun effetto.

federation_name
Nome della federazione che rappresenta la destinazione della connessione.

distribution_name
Nome della chiave per questa federazione.

value
Valore da utilizzare per la connessione al membro della federazione. Il membro della federazione che gestisce il valore della federazione diventa il membro della federazione a cui viene stabilita la connessione.

Il valore deve essere conforme al tipo specificato dalla federazione nel federation_name definito.

Il valore non può essere NULL.

WITH FILTERING=ON|OFF
Quando questo argomento non viene presentato, il filtro viene impostato su ON.

Quando FILTERING è impostato su OFF, l'ambito della connessione viene impostato sull'intervallo completo coperto dal membro della federazione contenente il valore della chiave specificata. La connessione manterrebbe lo stesso comportamento se fosse stabilita al membro attraverso il nome del membro della federazione fisica (il nome del database).

Il filtro è impostato su OFF quando si desidera utilizzare tutti i dati nel membro della federazione, ad esempio per l'analisi dell'intero intervallo, ed è già stata compilata la logica necessaria per gestire il filtro in un'istanza dell'unità atomica della federazione atomica nell'applicazione.

Quando FILTERING è impostato su ON, l'ambito della connessione viene impostato sull'istanza della chiave della federazione in un membro della federazione e non nell'intero intervallo del membro della federazione. In questa modalità, Query Processor aggiunge un predicato (fed_column=value) nella colonna della federazione a ogni query che fa riferimento a una tabella federata.

Il filtro è impostato su ON quando le applicazioni desiderano definire automaticamente l'ambito del loro accesso a un'unità atomica della federazione atomica, ad esempio tenant_id 55.

WITH RESET
Parola chiave obbligatoria che rende esplicita la reimpostazione della connessione.

L'istruzione USE FEDERATION offre un comportamento del pool di connessioni efficiente per librerie di connettività esistenti consentendo alle applicazioni di connettersi prima al database che contiene l'oggetto federazione e poi, attraverso l'istruzione USE FEDERATION, passare al membro della federazione specifico. In questo modo, il pool di connessioni client sarà più piccolo di quanto non sarebbe se dovesse fare riferimento a singoli membri della federazione o valori di unità atomiche della federazione.

L'istruzione USE FEDERATION può essere eseguita sulla connessione in qualsiasi momento della sua durata, ma deve essere l'unica istruzione nel batch e non supportare la parametrizzazione.

USE FEDERATION ripristina una connessione dal membro corrente della federazione o dal database radice alla radice della federazione o al valore specificato contenuto in un membro della federazione. Quando una connessione viene ripristinata con USE FEDERATION, la connessione viene ristabilita. Tutte le impostazioni esistenti e il contesto della connessione andranno persi. Ciò equivale a eseguire sp_reset_connection quando una connessione viene recuperata da un pool di connessioni.

Poiché il database master non può contenere una federazione, USE FEDERATION ROOT eseguito nel database master non ha effetto.

USE FEDERATION con un nome di federazione che non esiste restituisce un errore quale 'La federazione <nome federazione> non esiste'.

L'utilizzo di FILTERING=ON consente di limitare la vista della connessione a una sola istanza della chiave della federazione. La connessione a un'istanza della chiave della federazione consente di associare la query a un'unità atomica della federazione specifica. In questo modo si modifica la semantica delle query eseguite sulla connessione introducendo un predicato P. P viene inserito per tutte le tabelle federate in una determinata query come Federation_Column =@filtering_value.

Qualsiasi query che tenta di caricare, inserire o spostare una riga dal valore corrente del filtro della federazione non è consentita e avrà esito negativo, come se fosse presente un vincolo CHECK nella tabella di destinazione che impone P.

WarningAvviso
L'unità atomica della federazione non è esplicitamente un limite di sicurezza. Query Processor non garantisce che non si avranno perdite di informazioni tra unità. È possibile che le righe all'esterno dell'intervallo vengano elaborate parzialmente. È possibile che su queste righe venga eseguita la logica scalare arbitraria, cosa che potrebbe generare eccezioni impreviste come un overflow o una divisione per zero.

Nell'esempio seguente viene illustrato come indirizzare la connessione alla radice della federazione.

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
 
    using (SqlCommand command = connection.CreateCommand()) 
    { 
        // Route the connection to federation root 
        // Note that the CommandText should not contain any additional commends
        command.CommandText = "USE FEDERATION ROOT WITH RESET"; 
        command.ExecuteNonQuery(); 
    } 
}

Mostra:
© 2014 Microsoft