Informazioni sulle federazioni di server database

Per ottenere i livelli elevati di prestazioni richiesti dai siti Web di maggiori dimensioni, vengono in genere utilizzati sistemi a più livelli nei quali il carico di elaborazione dei diversi livelli viene bilanciato su più server. SQL Server consente di condividere il carico di elaborazione dei database su un gruppo di server tramite il partizionamento orizzontale dei dati in un database. Tali server vengono gestiti autonomamente, ma collaborano all'elaborazione delle richieste database provenienti dalle applicazioni. Un gruppo di server cooperativo di questo tipo viene definito federazione.

Un livello con federazione di server di database può raggiungere prestazioni estremamente elevate solo se l'applicazione invia ogni istruzione SQL al server membro che ospita la maggior parte dei dati richiesti dall'istruzione stessa. Questo processo prevede la collocazione dell'istruzione SQL presso i dati corrispondenti. La collocazione di istruzioni SQL presso i dati richiesti non rappresenta un requisito esclusivo delle federazioni di server, ma caratterizza anche i sistemi cluster.

Una federazione di server presenta alle applicazioni la stessa immagine di un singolo server di database, tuttavia esistono differenze interne che riguardano le modalità di implementazione del livello dei servizi database, come è illustrato nella tabella seguente.

Livello con server singolo

Livello con federazione di server

È installata un'istanza di SQL Server nel server di produzione.

È installata un'istanza di SQL Server in ogni server membro.

I dati di produzione vengono archiviati in un solo database.

Ogni server membro include un database membro. I dati vengono distribuiti in tutti i database membri.

Ogni tabella è un'entità singola.

Le tabelle del database originale vengono partizionate orizzontalmente in tabelle membro. È prevista una tabella membro per ogni database membro. Grazie alle viste partizionate distribuite, in ogni server membro è apparentemente disponibile una copia completa della tabella originale.

Tutte le connessioni vengono stabilite con l'unico server e tutte le istruzioni SQL vengono elaborate dalla stessa istanza di SQL Server.

Il livello dell'applicazione deve essere in grado di collocare ogni istruzione SQL nel server membro che include la maggior parte dei dati a cui fa riferimento l'istruzione.