MSDN Library

Maximum Capacity Specifications for SQL Server

 

Updated: January 29, 2016

THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

The following tables specify the maximum sizes and numbers of various objects defined in SQL Server components. To navigate to the table for a SQL Server technology, click on its link:

SQL Server Database Engine Objects

SQL Server Utility Objects

SQL Server Data-tier Application Objects

SQL Server Replication Objects

The following table specifies the maximum sizes and numbers of various objects defined in SQL Server databases or referenced in Transact-SQL statements.

SQL Server Database Engine object

Maximum sizes/numbers SQL Server (32-bit)

Maximum sizes/numbers SQL Server (64-bit)

Additional Information

Batch size

65,536 * Network Packet Size

65,536 * Network Packet Size

Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational Database Engine. The default packet size is 4 KB, and is controlled by the network packet size configuration option.

Bytes per short string column

8,000

8,000

Bytes per GROUP BY, ORDER BY

8,060

8,060

Bytes per index key

900

900

The maximum number of bytes in any index key cannot exceed 900 in SQL Server. You can define a key using variable-length columns whose maximum sizes add up to more than 900, provided no row is ever inserted with more than 900 bytes of data in those columns. In SQL Server, you can include nonkey columns in a nonclustered index to avoid the maximum index key size of 900 bytes.

Bytes per foreign key

900

900

Bytes per primary key

900

900

Bytes per row

8,060

8,060

SQL Server supports row-overflow storage which enables variable length columns to be pushed off-row. 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 Server. For more information, see the "Row-Overflow Data Exceeding 8 KB" topic in SQL Server Books Online.

Bytes per row in memory-optimized tables

Not supported

8,060

SQL Server In-Memory OLTP does not support row-overflow storage. Variable length columns are not pushed off row. This limits the maximum width of variable-length columns you can specify in a memory-optimized table to the maximum row size. For more information, see Table and Row Size in Memory-Optimized Tables.

Bytes in source text of a stored procedure

Lesser of batch size or 250 MB

Lesser of batch size or 250 MB

Bytes per varchar(max), varbinary(max), xml, text, or image column

2^31-1

2^31-1

Characters per ntext or nvarchar(max) column

2^30-1

2^30-1

Clustered indexes per table

1

1

Columns in GROUP BY, ORDER BY

Limited only by number of bytes

Limited only by number of bytes

Columns or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement

10

10

Columns per index key

16

16

If the table contains one or more XML indexes, the clustering key of the user table is limited to 15 columns because the XML column is added to the clustering key of the primary XML index. In SQL Server, you can include nonkey columns in a nonclustered index to avoid the limitation of a maximum of 16 key columns. For more information, see Create Indexes with Included Columns.

Columns per foreign key

16

16

Columns per primary key

16

16

Columns per nonwide table

1,024

1,024

Columns per wide table

30,000

30,000

Columns per SELECT statement

4,096

4,096

Columns per INSERT statement

4096

4096

Connections per client

Maximum value of configured connections

Maximum value of configured connections

Database size

524,272 terabytes

524,272 terabytes

Databases per instance of SQL Server

32,767

32,767

Filegroups per database

32,767

32,767

Filegroups per database for memory-optimized data

Not supported

1

Files per database

32,767

32,767

File size (data)

16 terabytes

16 terabytes

File size (log)

2 terabytes

2 terabytes

Data files for memory-optimized data per database

Not supported

4.096

Delta file per data file for memory-optimized data

Not supported

1

Foreign key table references per table

Outgoing = 253. Incoming = 10,000.

Outgoing = 253. Incoming = 10,000.

For restrictions, see Create Foreign Key Relationships.

Identifier length (in characters)

128

128

Instances per computer

50 instances on a stand-alone server for all SQL Server editions.

SQL Server supports 25 instances on a failover cluster when using a shared cluster disk as the stored option for you cluster installation SQL Server supports 50 instances on a failover cluster if you choose SMB file shares as the storage option for your cluster installation For more information, see Hardware and Software Requirements for Installing SQL Server 2016.

50 instances on a stand-alone server.

25 instances on a failover cluster when using a shared cluster disk as the stored option for you cluster installation SQL Server supports 50 instances on a failover cluster if you choose SMB file shares as the storage option for your cluster installation.

Indexes per memory-optimized table

Not supported

8

Length of a string containing SQL statements (batch size)

65,536 * Network packet size

65,536 * Network packet size

Network Packet Size is the size of the tabular data stream (TDS) packets used to communicate between applications and the relational Database Engine. The default packet size is 4 KB, and is controlled by the network packet size configuration option.

Locks per connection

Maximum locks per server

Maximum locks per server

Locks per instance of SQL Server

Up to 2,147,483,647

Limited only by memory

This value is for static lock allocation. Dynamic locks are limited only by memory.

Nested stored procedure levels

32

32

If a stored procedure accesses more than 64 databases, or more than 2 databases in interleaving, you will receive an error.

Nested subqueries

32

32

Nested trigger levels

32

32

Nonclustered indexes per table

999

999

Number of distinct expressions in the GROUP BY clause when any of the following are present: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP

32

32

Number of grouping sets generated by operators in the GROUP BY clause

4,096

4,096

Parameters per stored procedure

2,100

2,100

Parameters per user-defined function

2,100

2,100

REFERENCES per table

253

253

Rows per table

Limited by available storage

Limited by available storage

Tables per database

Limited by number of objects in a database

Limited by number of objects in a database

Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. The sum of the number of all objects in a database cannot exceed 2,147,483,647.

Partitions per partitioned table or index

1,000

15,000

** Important ** Creating a table or index with more than 1,000 partitions is possible on a 32-bit system, but is not supported.

Statistics on non-indexed columns

30,000

30,000

Tables per SELECT statement

Limited only by available resources

Limited only by available resources

Triggers per table

Limited by number of objects in a database

Limited by number of objects in a database

Database objects include objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints. The sum of the number of all objects in a database cannot exceed 2,147,483,647.

Columns per UPDATE statement (Wide Tables)

4096

4096

User connections

32,767

32,767

XML indexes

249

249

The following table specifies the maximum sizes and numbers of various objects that were tested in the SQL Server Utility.

SQL Server Utility object

Maximum sizes/numbers SQL Server (32-bit)

Maximum sizes/numbers SQL Server (64-bit)

Computers (physical computers or virtual machines) per SQL Server Utility

100

100

Instances of SQL Server per computer

5

5

Total number of instances of SQL Server per SQL Server Utility

200*

200*

User databases per instance of SQL Server, including data-tier applications

50

50

Total number of user databases per SQL Server Utility

1,000

1,000

File groups per database

1

1

Data files per file group

1

1

Log files per database

1

1

Volumes per computer

3

3

*The maximum number of managed instances of SQL Server supported by SQL Server Utility might vary based on the hardware configuration of the server. For getting started information, see SQL Server Utility Features and Tasks. SQL Server utility control point is not available in every edition of SQL Server 2016. For a list of features that are supported by the editions of SQL Server, see Features Supported by the Editions of SQL Server 2016.

The following table specifies the maximum sizes and numbers of various objects that were tested in the SQL Server data-tier applications (DAC).

SQL Server DAC object

Maximum sizes/numbers SQL Server (32-bit)

Maximum sizes/numbers SQL Server (64-bit)

Databases per DAC

1

1

Objects per DAC*

Limited by the number of objects in a database, or available memory.

Limited by the number of objects in a database, or available memory.

*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.

The following table specifies the maximum sizes and numbers of various objects defined in SQL Server Replication.

SQL Server Replication object

Maximum sizes/numbers SQL Server (32-bit)

Maximum sizes/numbers SQL Server (64-bit)

Articles (merge publication)

256

256

Articles (snapshot or transactional publication)

32,767

32,767

Columns in a table* (merge publication)

246

246

Columns in a table** (SQL Server snapshot or transactional publication)

1,000

1,000

Columns in a table** (Oracle snapshot or transactional publication)

995

995

Bytes for a column used in a row filter (merge publication)

1,024

1,024

Bytes for a column used in a row filter (snapshot or transactional publication)

8,000

8,000

*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. If column tracking is used, the base table can include a maximum of 246 columns.

**The base table can include the maximum number of columns allowable in the publication database (1,024 for SQL Server), but columns must be filtered from the article if they exceed the maximum specified for the publication type.

Community Additions

Show:
© 2016 Microsoft