Specifiche di capacità massima per SQL ServerMaximum Capacity Specifications for SQL Server

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per contenuti relativi alle versioni precedenti di SQL Server, vedere Specifiche di capacità massima per SQL Server.For content related to previous versions of SQL Server, see Maximum Capacity Specifications for SQL Server.

Le tabelle seguenti indicano le dimensioni e i numeri massimi dei diversi oggetti definiti nei componenti di SQL ServerSQL Server .The following tables specify maximum sizes and numbers of various objects defined in SQL ServerSQL Server components. Per passare alla tabella per una tecnologia SQL ServerSQL Server , fare clic sul relativo collegamento:To navigate to the table for a SQL ServerSQL Server technology, click on its link:

Oggetti Motore di database di SQL ServerSQL Server Database Engine Objects

Oggetti di Utilità SQL ServerSQL Server Utility Objects

Oggetti applicazione livello dati di SQL ServerSQL Server Data-tier Application Objects

Oggetti di replica di SQL ServerSQL Server Replication Objects

Motore di databaseDatabase Engine Oggetti Motore di databaseDatabase Engine Objects

La tabella seguente indica le dimensioni e i numeri massimi dei diversi oggetti definiti nei database di SQL ServerSQL Server o a cui si fa riferimento nelle istruzioni Transact-SQLTransact-SQL .Maximum sizes and numbers of various objects defined in SQL ServerSQL Server databases or referenced in Transact-SQLTransact-SQL statements.

SQL ServerSQL Server Motore di databaseDatabase Engine oggetto Motore di databaseDatabase Engine object Quantità/dimensioni massime SQL ServerSQL Server (64 bit)Maximum sizes/numbers SQL ServerSQL Server (64-bit) Informazioni aggiuntiveAdditional Information
Dimensioni batchBatch size 65.536 * dimensioni del pacchetto di rete65,536 * Network Packet Size Dimensioni pacchetto di rete corrisponde alle dimensioni dei pacchetti del flusso TDS (Tabular Data Stream) usati per le comunicazioni tra applicazioni e Motore di databaseDatabase Enginerelazionale.Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational Motore di databaseDatabase Engine. La dimensione predefinita del pacchetto è 4 KB e viene controllata dall'opzione di configurazione delle dimensioni del pacchetto di rete.The default packet size is 4 KB, and is controlled by the network packet size configuration option.
Byte per ogni colonna di stringhe breviBytes per short string column 8.0008,000
Byte per ogni clausola GROUP BY, ORDER BYBytes per GROUP BY, ORDER BY 8.0608,060
Byte per ogni chiave di indiceBytes per index key 900 byte per un indice cluster.900 bytes for a clustered index. 1700 per un indice non cluster.1,700 for a nonclustered index. Il numero massimo di byte in una chiave di indice cluster non può essere maggiore di 900 in SQL ServerSQL Server.The maximum number of bytes in a clustered index key cannot exceed 900 in SQL ServerSQL Server. Per una chiave di indice non cluster, il valore massimo è 1700 byte.For a nonclustered index key, the maximum is 1700 bytes.

È possibile definire una chiave usando colonne a lunghezza variabile le cui dimensioni massime superano il limite.You can define a key using variable-length columns whose maximum sizes add up to more than the limit. Tuttavia, le dimensioni combinate dei dati di tali colonne non possono mai superare il limite.However, the combined sizes of the data in those columns can never exceed the limit.

In un indice non cluster, è possibile includere colonne non chiave aggiuntive che non vengono incluse nel conteggio per il limite di dimensioni della chiave.In a nonclustered index, you can include extra non-key columns, and they do not count against the size limit of the key. Le colonne non chiave potrebbero migliorare le prestazioni di alcune query.The non-key columns might help some queries perform better.
Byte per ogni chiave di indice per tabelle ottimizzate per la memoriaBytes per index key for memory-optimized tables 2500 byte per un indice non cluster.2500 bytes for a nonclustered index. Nessun limite per un indice hash purché tutte le chiavi di indice rientrino nella riga.No limit for a hash index, as long as all index keys fit in-row. In una tabella ottimizzata per la memoria, un indice non cluster non può contenere colonne chiave le cui dimensioni massime dichiarate superano i 2500 byte.On a memory-optimized table, a nonclustered index cannot have key columns whose maximum declared sizes exceed 2500 bytes. È irrilevante se i dati effettivi nelle colonne chiave sono minori delle dimensioni massime dichiarate.It is irrelevant whether the actual data in the key columns would be shorter than the maximum declared sizes.

Per una chiave di indice hash non esiste alcun limite fisico alle dimensioni.For a hash index key there is no hard limit on size.

Per gli indici delle tabelle ottimizzate per la memoria, non è disponibile alcun concetto di colonne incluse poiché tutti gli indici coprono implicitamente tutte le colonne.For indexes on memory-optimized tables, there is no concept of included columns, since all indexes inherently cover of all columns.

Per una tabella ottimizzata per la memoria, anche se le dimensioni delle righe sono di 8060 byte, alcune colonne a lunghezza variabile possono essere fisicamente archiviate all'esterno di tali 8060 byte.For a memory-optimized table, even though the row size is 8060 bytes, some variable-length columns can be physically stored outside those 8060 bytes. Tuttavia, le dimensioni massime dichiarate di tutte le colonne chiave per tutti gli indici in una tabella, oltre a eventuali colonne a lunghezza fissa aggiuntive nella tabella, non devono superare 8060 byte.However, the maximum declared sizes of all key columns for all indexes on a table, plus any additional fixed-length columns in the table, must fit in the 8060 bytes.
Byte per ogni chiave esternaBytes per foreign key 900900
Byte per ogni chiave primariaBytes per primary key 900900
Byte per ogni rigaBytes per row 8.0608,060 SQL ServerSQL Server supporta l'archiviazione dei dati di overflow della riga che consente di spostare le colonne di lunghezza variabile all'esterno delle righe. supports row-overflow storage which enables variable length columns to be pushed off-row. 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 ServerSQL Server.Only a 24-byte root is stored in the main record for variable length columns pushed out of row; because of this, the effective row limit is higher than in previous releases of SQL ServerSQL Server. Per ulteriori informazioni, vedere l'argomento "Dati di overflow della riga che superano 8 KB" nella documentazione online di SQL ServerSQL Server .For more information, see the "Row-Overflow Data Exceeding 8 KB" topic in SQL ServerSQL Server Books Online.
Byte per ogni riga nelle tabelle ottimizzate per la memoriaBytes per row in memory-optimized tables 8.0608,060 A partire da SQL Server 2016SQL Server 2016 le tabelle ottimizzate per la memoria supportano l'archiviazione all'esterno delle righe.Starting SQL Server 2016SQL Server 2016 memory-optimized tables support off-row storage. Le colonne a lunghezza variabile vengono spostare all'esterno delle righe se le dimensioni massime di tutte le colonne nella tabella superano 8060 byte. La decisione avviene in fase di compilazione.Variable length columns are pushed off-row if the maximum sizes for all the columns in the table exceeds 8060 bytes; this is a compile-time decision. Per le colonne archiviate all'esterno delle righe viene archiviato un solo riferimento a 8 byte.Only an 8-byte reference is stored in-row for columns stored off-row. Per altre informazioni, vedere Dimensioni di tabelle e righe per le tabelle con ottimizzazione per la memoria.For more information, see Table and Row Size in Memory-Optimized Tables.
Byte nel testo di origine di una stored procedureBytes in source text of a stored procedure Minore delle dimensioni batch o 250 MBLesser of batch size or 250 MB
Byte per ogni colonna varchar(max), varbinary(max), xml, texto imageBytes per varchar(max), varbinary(max), xml, text, or image column 2^31-12^31-1
Caratteri per ogni colonna ntext o nvarchar(max)Characters per ntext or nvarchar(max) column 2^30-12^30-1
Indici cluster per tabellaClustered indexes per table 11
Colonne in GROUP BY, ORDER BYColumns in GROUP BY, ORDER BY Limitato solo dal numero di byteLimited only by number of bytes
Colonne o espressioni in un'istruzione GROUP BY WITH CUBE o WITH ROLLUPColumns or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement 1010
Colonne per ogni chiave di indiceColumns per index key 3232 Se la tabella contiene uno o più indici XML, la chiave di clustering della tabella utente viene limitata a 31 colonne perché la colonna XML viene aggiunta alla chiave di clustering dell'indice XML primario.If the table contains one or more XML indexes, the clustering key of the user table is limited to 31 columns because the XML column is added to the clustering key of the primary XML index. In SQL ServerSQL Serverè possibile includere colonne non chiave in un indice non cluster per evitare di raggiungere il limite massimo di 32 colonne chiave.In SQL ServerSQL Server, you can include nonkey columns in a nonclustered index to avoid the limitation of a maximum of 32 key columns. Per altre informazioni, vedere Creare indici con colonne incluse.For more information, see Create Indexes with Included Columns.
Colonne per ogni chiave esternaColumns per foreign key 3232
Colonne per ogni chiave primariaColumns per primary key 3232
Colonne per ogni tabella non estesa in larghezzaColumns per nonwide table 1.0241,024
Colonne per ogni tabella estesa in larghezzaColumns per wide table 30.00030,000
Colonne per ogni istruzione SELECTColumns per SELECT statement 4.0964,096
Colonne per ogni istruzione INSERTColumns per INSERT statement 4.0964,096
Connessioni per ogni clientConnections per client Valore massimo delle connessioni configurateMaximum value of configured connections
Dimensioni di databaseDatabase size 524.272 terabytes524,272 terabytes
Database per ogni istanza di SQL ServerSQL ServerDatabases per instance of SQL ServerSQL Server 32.76732,767
Filegroup per ogni databaseFilegroups per database 32.76732,767
Filegroup per ogni database per dati ottimizzati per la memoriaFilegroups per database for memory-optimized data 11
File per ogni databaseFiles per database 32.76732,767
Dimensioni di file (dati)File size (data) 16 terabyte16 terabytes
Dimensioni del file (log)File size (log) 2 terabyte2 terabytes
File di dati per dati ottimizzati per la memoria per ogni databaseData files for memory-optimized data per database 4.096 in SQL Server 2014SQL Server 2014.4,096 in SQL Server 2014SQL Server 2014. Le versioni successive di SQL ServerSQL Server non impongono un limite rigido di questo tipo.Later versions of SQL ServerSQL Server do not impose such a strict limit.
File differenziale per ogni file di dati per dati ottimizzati per la memoriaDelta file per data file for memory-optimized data 11
Riferimenti alla tabella della chiave esterna per ogni tabellaForeign key table references per table In uscita = 253.Outgoing = 253. In ingresso = 10.000.Incoming = 10,000. Per informazioni sulle restrizioni, vedere Create Foreign Key Relationships.For restrictions, see Create Foreign Key Relationships.
Lunghezza di identificatore (in caratteri)Identifier length (in characters) 128128
Istanze per ogni computerInstances per computer 50 istanze in un server autonomo.50 instances on a stand-alone server.

25 istanze su un cluster di failover durante l'utilizzo di un disco di cluster condiviso come opzione archiviata per l'installazione del cluster SQL ServerSQL Server supporta 50 istanze su un cluster di failover se si scelgono condivisioni file SMB come opzione di archiviazione per l'installazione del cluster.25 instances on a failover cluster when using a shared cluster disk as the stored option for you cluster installation SQL ServerSQL Server supports 50 instances on a failover cluster if you choose SMB file shares as the storage option for your cluster installation.
Indici per ogni tabella ottimizzata per la memoriaIndexes per memory-optimized table 999 avvio SQL Server 2017SQL Server 2017 e in Database SQL di AzureAzure SQL Database999 starting SQL Server 2017SQL Server 2017 and in Database SQL di AzureAzure SQL Database
8 in SQL Server 2014SQL Server 2014 e SQL Server 2016SQL Server 20168 in SQL Server 2014SQL Server 2014 and SQL Server 2016SQL Server 2016
Lunghezza di una stringa contenente istruzioni SQL (dimensioni batch)Length of a string containing SQL statements (batch size) 65.536 * dimensioni del pacchetto di rete65,536 * Network packet size Dimensioni pacchetto di rete corrisponde alle dimensioni dei pacchetti del flusso TDS (Tabular Data Stream) usati per le comunicazioni tra applicazioni e Motore di databaseDatabase Enginerelazionale.Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational Motore di databaseDatabase Engine. La dimensione predefinita del pacchetto è 4 KB e viene controllata dall'opzione di configurazione delle dimensioni del pacchetto di rete.The default packet size is 4 KB, and is controlled by the network packet size configuration option.
Blocchi per ogni connessioneLocks per connection Numero massimo di blocchi per ogni serverMaximum locks per server
Blocchi per ogni istanza di SQL ServerSQL ServerLocks per instance of SQL ServerSQL Server Limitato solo dalla memoriaLimited only by memory Questo valore si riferisce all'allocazione di blocchi statici.This value is for static lock allocation. I blocchi dinamici sono limitati solo dalla memoria.Dynamic locks are limited only by memory.
Livelli di nidificazione delle stored procedureNested stored procedure levels 3232 Se una stored procedure accede a più di 64 database o a più di 2 database in interfoliazione, verrà generato un errore.If a stored procedure accesses more than 64 databases, or more than 2 databases in interleaving, you will receive an error.
Sottoquery nidificateNested subqueries 3232
Livelli di nidificazione dei triggerNested trigger levels 3232
Indici non cluster per tabellaNonclustered indexes per table 999999
Numero di espressioni distinte nella clausola GROUP BY quando è presente una delle seguenti opzioni: CUBE, ROLLUP, GROUPING SETS, WITH CUBE o WITH ROLLUPNumber of distinct expressions in the GROUP BY clause when any of the following are present: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP 3232
Numero di set di raggruppamento generati dagli operatori nella clausola GROUP BYNumber of grouping sets generated by operators in the GROUP BY clause 4.0964,096
Parametri per ogni stored procedureParameters per stored procedure 2.1002,100
Parametri per ogni funzionalità definita dall'utenteParameters per user-defined function 2.1002,100
REFERENCES per ogni tabellaREFERENCES per table 253253
Righe per ogni tabellaRows per table Limitato dall'archiviazione disponibileLimited by available storage
Tabelle per ogni databaseTables per database Limitato dal numero di oggetti di un databaseLimited by number of objects in a database Gli oggetti di database possono essere tabelle, viste, stored procedure, funzioni definite dall'utente, trigger, regole, impostazioni predefinite e vincoli.Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. La somma del numero di tutti gli oggetti in un database non può essere maggiore di 2.147.483.647.The sum of the number of all objects in a database cannot exceed 2,147,483,647.
Partizioni per ogni tabella o indice partizionatoPartitions per partitioned table or index 15.00015,000
Statistiche relative a colonne non indicizzateStatistics on non-indexed columns 30.00030,000
Tabelle per ogni istruzione SELECTTables per SELECT statement Limitato solo dalle risorse disponibiliLimited only by available resources
Trigger per ogni tabellaTriggers per table Limitato dal numero di oggetti di un databaseLimited by number of objects in a database Gli oggetti di database possono essere tabelle, viste, stored procedure, funzioni definite dall'utente, trigger, regole, impostazioni predefinite e vincoli.Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. La somma del numero di tutti gli oggetti in un database non può essere maggiore di 2.147.483.647.The sum of the number of all objects in a database cannot exceed 2,147,483,647.
Colonne per ogni istruzione UPDATE (tabelle estese in larghezza)Columns per UPDATE statement (Wide Tables) 40964096
Connessioni utenteUser connections 32.76732,767
Indici XMLXML indexes 249249

SQL ServerSQL Server Oggetti Utilità SQL ServerSQL Server Utility Objects

Dimensioni e numeri massimi dei vari oggetti testati nell'Utilità SQL ServerSQL Server .Maximum sizes and numbers of various objects that were tested in the SQL ServerSQL Server Utility.

SQL ServerSQL Server Oggetto Utilità Utility object Quantità/dimensioni massime SQL ServerSQL Server (64 bit)Maximum sizes/numbers SQL ServerSQL Server (64-bit)
Computer (computer fisici o macchine virtuali) per Utilità SQL ServerSQL ServerComputers (physical computers or virtual machines) per SQL ServerSQL Server Utility 100100
Istanze di SQL ServerSQL Server per ogni computerInstances of SQL ServerSQL Server per computer 55
Numero complessivo di istanze di SQL ServerSQL Server per Utilità SQL ServerSQL ServerTotal number of instances of SQL ServerSQL Server per SQL ServerSQL Server Utility 200200
Database utente per ogni istanza di SQL ServerSQL Server, incluse applicazioni livello datiUser databases per instance of SQL ServerSQL Server, including data-tier applications 5050
Numero complessivo di database utente per Utilità SQL ServerSQL ServerTotal number of user databases per SQL ServerSQL Server Utility 1.0001,000
Filegroup per ogni databaseFile groups per database 11
File di dati per filegroupData files per file group 11
File di log per ogni databaseLog files per database 11
Volumi per ogni computerVolumes per computer 33

Il numero massimo di istanze gestite di SQL ServerSQL Server supportate da Utilità SQL ServerSQL Server può variare in base alla configurazione hardware del server.The maximum number of managed instances of SQL ServerSQL Server supported by SQL ServerSQL Server Utility may vary based on the hardware configuration of the server. Per informazioni introduttive, vedere Attività e funzionalità di Utilità SQL Server.For getting started information, see SQL Server Utility Features and Tasks. SQL ServerSQL Server non è disponibile in tutte le edizione di SQL Server 2017SQL Server 2017. Utility control point is not available in every edition of SQL Server 2017SQL Server 2017. Per un elenco delle funzionalità supportate dalle edizioni di SQL ServerSQL Server, vedere Funzionalità supportate dalle edizioni di SQL Server 2016.For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016.

SQL ServerSQL Server Oggetti applicazione livello dati (DAC) SQL ServerSQL Server Data-tier Application Objects

Dimensioni e numeri massimi di oggetti diversi testati nelle applicazioni livello dati di SQL ServerSQL Server .Maximum sizes and numbers of various objects that were tested in the SQL ServerSQL Server data-tier applications (DAC).

SQL ServerSQL Server Oggetto applicazione livello dati DAC object Quantità/dimensioni massime SQL ServerSQL Server (64 bit)Maximum sizes/numbers SQL ServerSQL Server (64-bit)
Database per ogni applicazione livello datiDatabases per DAC 11
Oggetti per ogni applicazione livello datiObjects per DAC* Limitati dal numero di oggetti in un database o dalla memoria disponibile.Limited by the number of objects in a database, or available memory.

I tipi di oggetti inclusi nel limite sono utenti, tabelle, viste, stored procedure, funzioni definite dall'utente, tipi di dati definiti dall'utente, ruoli di database, schemi e tipi di tabella definiti dall'utente.*The types of objects included in the limit are users, tables, views, stored procedures, user-defined functions, user-defined data type, database roles, schemas, and user-defined table types.

Oggetti di replicaReplication Objects

Dimensioni e numeri massimi dei vari oggetti definiti nella replica di SQL ServerSQL Server .Maximum sizes and numbers of various objects defined in SQL ServerSQL Server Replication.

SQL ServerSQL Server Oggetto replica Replication object Dimensioni/numeri massimi per SQL Server (64 bit)Maximum sizes/numbers SQL Server (64-bit)
Articoli (pubblicazione di tipo merge)Articles (merge publication) 20482048
Articoli (pubblicazione snapshot o transazionale)Articles (snapshot or transactional publication) 32.76732,767
Colonne in una tabella* (pubblicazione di tipo merge)Columns in a table* (merge publication) 246246
Colonne in una tabella** (pubblicazione snapshot o transazionale di SQL ServerSQL Server )Columns in a table** ( SQL ServerSQL Server snapshot or transactional publication) 1.0001,000
Colonne in una tabella** (pubblicazione snapshot o transazionale di Oracle)Columns in a table** (Oracle snapshot or transactional publication) 995995
Byte per una colonna utilizzata in un filtro di riga (pubblicazione di tipo merge)Bytes for a column used in a row filter (merge publication) 1.0241,024
Byte per una colonna utilizzata in un filtro di riga (pubblicazione snapshot o transazionale)Bytes for a column used in a row filter (snapshot or transactional publication) 8.0008,000

Se si usa il rilevamento a livello di riga per il rilevamento dei conflitti (impostazione predefinita), la tabella di base può includere fino a 1.024 colonne, che devono tuttavia essere filtrate dall'articolo in modo da pubblicare un massimo di 246 colonne.If row tracking is used for conflict detection (the default), the base table can include a maximum of 1,024 columns, but columns must be filtered from the article so that a maximum of 246 columns is published. Se viene utilizzato il rilevamento a livello di colonna, nella tabella di base possono essere incluse al massimo 246 colonne.If column tracking is used, the base table can include a maximum of 246 columns.

La tabella di base può includere il numero massimo di colonne consentito nel database di pubblicazione (1.024 per SQL ServerSQL Server), ma le colonne devono essere filtrate dall'articolo se superano il numero specificato per il tipo di pubblicazione.The base table can include the maximum number of columns allowable in the publication database (1,024 for SQL ServerSQL Server), but columns must be filtered from the article if they exceed the maximum specified for the publication type.

Vedere ancheSee Also

Requisiti hardware e software per l'installazione di SQL Server 2016 Hardware and Software Requirements for Installing SQL Server 2016
Parametri di controllo di Controllo configurazione sistema Check Parameters for the System Configuration Checker
Attività e funzionalità di Utilità SQL ServerSQL Server Utility Features and Tasks