Search This Blog

2010-04-24

Maximum Capacity of different properties for SQL Server

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 size 165,536 * Network Packet Size65,536 * Network Packet Size
Bytes per short string column8,0008,000
Bytes per GROUP BY, ORDER BY8,0608,060
Bytes per index key2900900
Bytes per foreign key900900
Bytes per primary key900900
Bytes per row88,0608,060
Bytes in source text of a stored procedureLesser of batch size or 250 MBLesser of batch size or 250 MB
Bytes per varchar(max), varbinary(max), xml, text, or image column2^31-12^31-1
Characters per ntext or nvarchar(max) column2^30-12^30-1
Clustered indexes per table11
Columns in GROUP BY, ORDER BYLimited only by number of bytesLimited only by number of bytes
Columns or expressions in a GROUP BY WITH CUBE or WITH ROLLUP statement1010
Columns per index key71616
Columns per foreign key1616
Columns per primary key1616
Columns per nonwide table1,0241,024
Columns per wide table30,00030,000
Columns per SELECT statement4,0964,096
Columns per INSERT statement40964096
Connections per clientMaximum value of configured connectionsMaximum value of configured connections
Database size524,272 terabytes524,272 terabytes
Databases per instance of SQL Server32,76732,767
Filegroups per database32,76732,767
Files per database32,76732,767
File size (data)16 terabytes16 terabytes
File size (log)2 terabytes2 terabytes
Foreign key table references per table4253253
Identifier length (in characters)128128
Instances per computer50 instances on a stand-alone server for all SQL Server editions except for Workgroup. Workgroup supports a maximum of 16 instances per computer.SQL Server supports 25 instances on a failover cluster.50 instances on a stand-alone server.25 instances on a failover cluster.
Length of a string containing SQL statements (batch size)165,536 * Network packet size65,536 * Network packet size
Locks per connectionMaximum locks per serverMaximum locks per server
Locks per instance of SQL Server5Up to 2,147,483,647Limited only by memory
Nested stored procedure levels63232
Nested subqueries3232
Nested trigger levels3232
Nonclustered indexes per table999999
Number of distinct expressions in the GROUP BY clause when any of the following are present: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP3232
Number of grouping sets generated by operators in the GROUP BY clause4,0964,096
Parameters per stored procedure2,1002,100
Parameters per user-defined function2,1002,100
REFERENCES per table253253
Rows per tableLimited by available storageLimited by available storage
Tables per database3Limited by number of objects in a databaseLimited by number of objects in a database
Partitions per partitioned table or index1,0001,000
Statistics on non-indexed columns30,00030,000
Tables per SELECT statementLimited only by available resourcesLimited only by available resources
Triggers per table3Limited by number of objects in a databaseLimited by number of objects in a database
Columns per UPDATE statement (Wide Tables)40964096
User connections32,76732,767
XML indexes249249

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 8 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 Index with Included Columns.8 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.

Document Obtain From:
http://msdn.microsoft.com/en-us/library/ms143432.aspx

No comments: