Wednesday, August 21, 2013

Maximum Capacity Specifications for SQL Server

SQL Server 2012 -- Information taken from http://technet.microsoft.com/en-us/library/ms143432.aspx


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)
Batch size1
65,536 * Network Packet Size
65,536 * Network Packet Size
Bytes per short string column
8,000
8,000
Bytes per GROUP BY, ORDER BY
8,060
8,060
Bytes per index key2
900
900
Bytes per foreign key
900
900
Bytes per primary key
900
900
Bytes per row8
8,060
8,060
Bytes in source text of a stored procedure
Lesser of batch size or 250 MB
Lesser of batch size or 250 MB
Bytes pervarchar(max),varbinary(max),xmltext, orimage column
2^31-1
2^31-1
Characters perntext ornvarchar(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 key7
16
16
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
Files per database
32,767
32,767
File size (data)
16 terabytes
16 terabytes
File size (log)
2 terabytes
2 terabytes
Foreign key table references per table4
253
253
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 Storage Types for Data Files.
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 For more information, see Storage Types for Data Files.
Length of a string containing SQL statements (batch size)1
65,536 * Network packet size
65,536 * Network packet size
Locks per connection
Maximum locks per server
Maximum locks per server
Locks per instance of SQL Server5
Up to 2,147,483,647
Limited only by memory
Nested stored procedure levels6
32
32
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 database3
Limited by number of objects in a database
Limited by number of objects in a database
Partitions per partitioned table or index
1,000
Important note Important
Creating a table or index with more than 1,000 partitions is possible on a 32-bit system, but is not supported.
15,000
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 table3
Limited by number of objects in a database
Limited by number of objects in a database
Columns per UPDATE statement (Wide Tables)
4096
4096
User connections
32,767
32,767
XML indexes
249
249
1Network 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.
2The 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.
3Database 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.
4Although a table can contain an unlimited number of FOREIGN KEY constraints, the recommended maximum is 253. Depending on the hardware configuration hosting SQL Server, specifying additional FOREIGN KEY constraints may be expensive for the query optimizer to process.
5This value is for static lock allocation. Dynamic locks are limited only by memory.
6If a stored procedure accesses more than 64 databases, or more than 2 databases in interleaving, you will receive an error.
7If 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.
8SQL 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.


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
2001
2001
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
1 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 2012. For a list of features that are supported by the editions of SQL Server, see Features Supported by the Editions of SQL Server 2012(http://go.microsoft.com/fwlink/?linkid=232473).


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 DAC1
Limited by the number of objects in a database, or available memory.
Limited by the number of objects in a database, or available memory.
1The 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 table1 (merge publication)
246
246
Columns in a table2 (SQL Server snapshot or transactional publication)
1,000
1,000
Columns in a table2 (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

No comments: