Specifiche di capacità massima per SQL Server
Nelle tabelle seguenti vengono indicati le dimensioni e i numeri massimi dei diversi oggetti definiti nei componenti di SQL Server.
Oggetti del Motore di database
Nella tabella seguente vengono indicati le dimensioni e i numeri massimi dei diversi oggetti definiti nei database di SQL Server o a cui si fa riferimento nelle istruzioni Transact-SQL.
Oggetto Motore di database di SQL Server |
Dimensioni/numeri massimi per SQL Server (32 bit) |
Dimensioni/numeri massimi per SQL Server (64 bit) |
---|---|---|
Dimensioni di batch1 |
65.536 * dimensioni del pacchetto di rete |
65.536 * dimensioni del pacchetto di rete |
Byte per ogni colonna di stringhe brevi |
8.000 |
8.000 |
Byte per ogni clausola GROUP BY, ORDER BY |
8.060 |
8.060 |
Byte per ogni chiave di indice2 |
900 |
900 |
Byte per ogni chiave esterna |
900 |
900 |
Byte per ogni chiave primaria |
900 |
900 |
Byte per ogni riga8 |
8.060 |
8.060 |
Byte nel testo di origine di una stored procedure |
Minore delle dimensioni batch o 250 MB |
Minore delle dimensioni batch o 250 MB |
Byte per ogni colonna varchar(max), varbinary(max), xml, text o image |
2^31-1 |
2^31-1 |
Caratteri per ogni colonna ntext o nvarchar(max) |
2^30-1 |
2^30-1 |
Indici cluster per ogni tabella |
1 |
1 |
Colonne in GROUP BY, ORDER BY |
Limitato solo dal numero di byte |
Limitato solo dal numero di byte |
Colonne o espressioni in un'istruzione GROUP BY WITH CUBE o WITH ROLLUP |
10 |
10 |
Colonne per ogni chiave di indice7 |
16 |
16 |
Colonne per ogni chiave esterna |
16 |
16 |
Colonne per ogni chiave primaria |
16 |
16 |
Colonne per ogni tabella non estesa in larghezza |
1.024 |
1.024 |
Colonne per ogni tabella estesa in larghezza |
30.000 |
30.000 |
Colonne per ogni istruzione SELECT |
4.096 |
4.096 |
Colonne per ogni istruzione INSERT |
4096 |
4096 |
Connessioni per ogni client |
Valore massimo delle connessioni configurate |
Valore massimo delle connessioni configurate |
Dimensioni di database |
524.272 terabyte |
524.272 terabyte |
Database per ogni istanza di SQL Server |
32.767 |
32.767 |
Filegroup per ogni database |
32.767 |
32.767 |
File per ogni database |
32.767 |
32.767 |
Dimensioni di file (dati) |
16 terabyte |
16 terabyte |
Dimensioni di file (log) |
2 terabyte |
2 terabyte |
Riferimenti alla tabella della chiave esterna per ogni tabella4 |
253 |
253 |
Lunghezza di identificatore (in caratteri) |
128 |
128 |
Istanze per ogni computer |
50 istanze in un server autonomo per tutte le edizioni di SQL Server ad eccezione dell'edizione Workgroup, che supporta un massimo di 16 istanze per computer. SQL Server supporta 25 istanze in un cluster di failover. |
50 istanze in un server autonomo. 25 istanze in un cluster di failover. |
Lunghezza di una stringa contenente istruzioni SQL (dimensioni di batch)1 |
65.536 * dimensioni del pacchetto di rete |
65.536 * dimensioni del pacchetto di rete |
Blocchi per ogni connessione |
Numero massimo di blocchi per ogni server |
Numero massimo di blocchi per ogni server |
Blocchi per ogni istanza di SQL Server5 |
Fino a 2.147.483.647 |
Limitato solo dalla memoria |
Livelli di nidificazione delle stored procedure6 |
32 |
32 |
Sottoquery nidificate |
32 |
32 |
Livelli di nidificazione dei trigger |
32 |
32 |
Indici non cluster per ogni tabella |
999 |
999 |
Numero di espressioni distinte nella clausola GROUP BY quando è presente una delle seguenti opzioni: CUBE, ROLLUP, GROUPING SETS, WITH CUBE o WITH ROLLUP |
32 |
32 |
Numero di set di raggruppamento generati dagli operatori nella clausola GROUP BY |
4.096 |
4.096 |
Parametri per ogni stored procedure |
2.100 |
2.100 |
Parametri per ogni funzionalità definita dall'utente |
2.100 |
2.100 |
REFERENCES per ogni tabella |
253 |
253 |
Righe per ogni tabella |
Limitato dall'archiviazione disponibile |
Limitato dall'archiviazione disponibile |
Tabelle per ogni database3 |
Limitato dal numero di oggetti di un database |
Limitato dal numero di oggetti di un database |
Partizioni per ogni tabella o indice partizionato |
1.000 |
1.000 |
Statistiche relative a colonne non indicizzate |
30.000 |
30.000 |
Tabelle per ogni istruzione SELECT |
Limitato solo dalle risorse disponibili |
Limitato solo dalle risorse disponibili |
Trigger per ogni tabella3 |
Limitato dal numero di oggetti di un database |
Limitato dal numero di oggetti di un database |
Colonne per ogni istruzione UPDATE (tabelle estese in larghezza) |
4096 |
4096 |
Connessioni utente |
32.767 |
32.767 |
Indici XML |
249 |
249 |
1 Le dimensioni del pacchetto di rete corrispondono alle dimensioni dei pacchetti del flusso TDS (Tabular Data Stream) utilizzati per le comunicazioni tra le applicazioni e Motore di database relazionale. La dimensione predefinita del pacchetto è 4 KB e viene controllata dall'opzione di configurazione network packet size.
2 Il numero massimo di byte di una chiave di indice non può essere maggiore di 900 in SQL Server. È possibile definire una chiave utilizzando colonne di lunghezza variabile le cui dimensioni massime sono maggiori di 900, a condizione che non vengano inserite nelle colonne righe con più di 900 byte di dati. In SQL Server è possibile includere in un indice non cluster colonne non chiave per evitare di raggiungere la dimensione massima di 900 byte consentita per le chiavi di indice.
3 Gli oggetti di database possono essere tabelle, viste, stored procedure, funzionalità definite dall'utente, trigger, regole, impostazioni predefinite e vincoli. La somma del numero di tutti gli oggetti in un database non può essere maggiore di 2.147.483.647.
4Anche se una tabella può contenere un numero illimitato di vincoli FOREIGN KEY, il numero massimo consigliato è 253. A seconda della configurazione hardware che ospita SQL Server, la specifica di altri vincoli FOREIGN KEY può risultare dispendiosa in termini di elaborazione da parte di Query Optimizer.
5 Questo valore si riferisce all'allocazione di blocchi statici. I blocchi dinamici sono limitati solo dalla memoria.
6 Se una stored procedure esegue l'accesso a più di 8 database o a più di 2 database in interfoliazione, verrà generato un errore.
7 Se la tabella contiene uno o più indici XML, la chiave di clustering della tabella utente viene limitata a 15 colonne, poiché la colonna XML viene aggiunta alla chiave di clustering dell'indice XML primario. In SQL Server è possibile includere in un indice non cluster colonne non chiave per evitare di raggiungere il limite massimo di 16 colonne chiave. Per ulteriori informazioni, vedere Indice con colonne incluse.
8SQL Server supporta l'archiviazione dei dati di overflow della riga, che consente di spostare all'esterno di righe colonne di lunghezza variabile. Solo una radice di 24 byte viene archiviata nel record principale per le colonne di lunghezza variabile spostate all'esterno di righe. Di conseguenza, il limite delle righe effettivo è maggiore di quello delle versioni precedenti di SQL Server. Per ulteriori informazioni, vedere l'argomento "Dati di overflow della riga che superano 8 KB" nella documentazione in linea di SQL Server.
Oggetti di replica
Nella tabella seguente vengono indicati le dimensioni e i numeri massimi dei diversi oggetti definiti nella replica di SQL Server.
Oggetto di replica di SQL Server |
Dimensioni/numeri massimi per SQL Server (32 bit) |
Dimensioni/numeri massimi per SQL Server (64 bit) |
---|---|---|
Articoli (pubblicazione di tipo merge) |
256 |
256 |
Articoli (pubblicazione snapshot o transazionale) |
32.767 |
32.767 |
Colonne in una tabella1 (pubblicazione di tipo merge) |
246 |
246 |
Colonne in una tabella2 (pubblicazione snapshot o transazionale di SQL Server) |
1.000 |
1.000 |
Colonne in una tabella2 (pubblicazione snapshot o transazionale di Oracle) |
995 |
995 |
Byte per una colonna utilizzata in un filtro di riga (pubblicazione di tipo merge) |
1.024 |
1.024 |
Byte per una colonna utilizzata in un filtro di riga (pubblicazione snapshot o transazionale) |
8.000 |
8.000 |
1 Se viene utilizzato il rilevamento a livello di riga per l'individuazione dei conflitti (impostazione predefinita), la tabella di base può contenere al massimo 1.024 colonne, ma le colonne devono essere filtrate dall'articolo affinché venga pubblicato un massimo di 246 colonne. Se viene utilizzato il rilevamento a livello di colonna, la tabella di base può includere fino a 246 colonne. Per ulteriori informazioni sul livello di rilevamento, vedere la sezione specifica di Modalità di rilevamento e risoluzione dei conflitti da parte della replica di tipo merge.
2La tabella di base può includere il numero massimo di colonne consentito nel database di pubblicazione (1.024 per SQL Server), ma le colonne devono essere filtrate dall'articolo se superano il numero specificato per il tipo di pubblicazione.