Database Engine 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) |
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
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 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 |
1000
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 |
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 |
1) 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.
2) 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.
3) 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.
4) Although 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.
5) This value is for static lock allocation. Dynamic locks are limited only by memory.
6)If a stored procedure accesses more than 64 databases, or more than 2 databases in interleaving, you will receive an error.
7) 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.
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.
No comments :
Post a Comment