Penso che alla fine quello che stai cercando sia una spiegazione dei diversi modi in cui SQL Server può essere utilizzato per gestire tabelle e gruppi di dati estremamente grandi che vengono replicati attraverso le istanze del server di database. Ci sono diversi approcci a questo problema e nessuno di essi è un proiettile d'argento, ma comprendere le basi di ciascuno è un buon modo per fare la scelta giusta per l'architettura.
Sharding
Lo sharding del database è un modo per prendere un enorme set di dati e dividerlo in un numero di diversi gruppi di file. Questi singoli filegroup possono essere archiviati tutti su un singolo server, più server o, meglio ancora, attraverso una Area di archiviazione basata su RAID.
La linea di fondo qui è che le prestazioni IO fisiche migliorano in modo significativo quando si accede ai record solo da pochi gruppi di file fisici rispetto a un enorme filegroup in un set di dati non sdrammato.
SQL Server non ha un modo economico o semplice per farlo subito, né conosco alcun modo semplice o economico per farlo con altri importanti fornitori di database. Una volta che inizi a parlare di frammenti, allora stai giocando a un altro gioco con le palle.
Viste partizione distribuita
Consentono di accedere a set di dati ben partizionati in modo tale che si possano recuperare solo i record necessari in base alla propria strategia di partizionamento. Vi sono buone informazioni su MSDN su questo con SQL Server .
Cluster attivo
Il concetto di clustering consiste nel prendere più istanze di SQL Server come nodi e farle lavorare insieme su un singolo database, sincronizzate in modo che le partizioni su diversi gruppi di file vengano letti e scritti in modo da non danneggiare o danneggiare dati, e in un modo che scala in modo massiccio.
Replica peer-to-peer
In questa configurazione, tutti i server di database hanno una propria istanza e ognuno deve essere configurato per influenzare solo la propria piccola area dello schema. I dati sono spesso obsoleti tra loro e devono essere sincronizzati attraverso un processo esterno e le modifiche dello schema possono essere estremamente difficili da implementare. Questo non è il modo ideale per gestirlo nella tua applicazione.
Non posso permettermi partizioni distribuite e clustering scalabile massicciamente!
Quindi non hai più di un milione di licenze e hardware per soluzioni altamente scalabili? C'è sempre il Cloud. I provider di soluzioni Azure e di altri server SQL PaaS (Platform as a Service) possono fornire la scalabilità necessaria senza il grande investimento iniziale. Questa è generalmente la via più facile da percorrere.