Following tables specify the maximum sizes and numbers of various objects defined in Microsoft SQL Server Denali, 2008 and 2005 components.
SQL Server Database Engine object | SQL Server Denali (32-Bit) | SQL Server Denali (64-Bit) | SQL Server 2005 (32-Bit) | SQL Server 2005 (64-Bit) | SQL Server 2008 (32-Bit) | SQL Server 2008 (64-Bit) |
Batch size1 | 65,536 * Network Packet Size | 65,536 * Network Packet Size | 65,536 * Network Packet Size | 65,536 * Network Packet Size | 65,536 * Network Packet Size | 65,536 * Network Packet Size |
Bytes per short string column | 8,000 | 8,000 | 8,000 | 8,000 | 8,000 | 8,000 |
Bytes per GROUP BY, ORDER BY | 8,060 | 8,060 | 8,060 | 8,060 | 8,060 | 8,060 |
Bytes per index key2 | 900 | 900 | 900 | 900 | 900 | 900 |
Bytes per foreign key | 900 | 900 | 900 | 900 | 900 | 900 |
Bytes per primary key | 900 | 900 | 900 | 900 | 900 | 900 |
Bytes per row8 | 8,060 | 8,060 | 8,060 | 8,060 | 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 | Lesser of batch size or 250 MB | Lesser of batch size or 250 MB | ||
Bytes per varchar(max),varbinary(max), xml, text, orimage column | 2^31-1 | 2^31-1 | 2^31-1 | 2^31-1 | 2^31-1 | 2^31-1 |
Characters per ntext ornvarchar(max) column | 2^30-1 | 2^30-1 | 2^30-1 | 2^30-1 | 2^30-1 | 2^30-1 |
Clustered indexes per table | 1 | 1 | 1 | 1 | 1 | 1 |
Columns in GROUP BY, ORDER BY | Limited only by number of bytes | Limited only by number of bytes | Limited only by number of bytes | Limited only by number of bytes | 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 | 10 | 10 | 10 | 10 |
Columns per index key7 | 16 | 16 | 16 | 16 | 16 | 16 |
Columns per foreign key | 16 | 16 | 16 | 16 | 16 | 16 |
Columns per primary key | 16 | 16 | 16 | 16 | 16 | 16 |
Columns per nonwide table | 1,024 | 1,024 | 1,024 | 1,024 | 1,024 | 1,024 |
Columns per wide table | 30,000 | 30,000 | 4,096 | 4,096 | 30,000 | 30,000 |
Columns per SELECT statement | 4,096 | 4,096 | 1,024 | 1,024 | 4,096 | 4,096 |
Columns per INSERT statement | 4096 | 4096 | Maximum value of configured connections | Maximum value of configured connections | 4096 | 4096 |
Connections per client | Maximum value of configured connections | Maximum value of configured connections | 524,258 terabytes | 524,258 terabytes | Maximum value of configured connections | Maximum value of configured connections |
Database size | 524,272 terabytes | 524,272 terabytes | 32,767 | 32,767 | 524,272 terabytes | 524,272 terabytes |
Databases per instance of SQL Server | 32,767 | 32,767 | 32,767 | 32,767 | 32,767 | 32,767 |
Filegroups per database | 32,767 | 32,767 | 32,767 | 32,767 | 32,767 | 32,767 |
Files per database | 32,767 | 32,767 | 32,767 | 32,767 | ||
File size (data) | 16 terabytes | 16 terabytes | 16 terabytes | 16 terabytes | 16 terabytes | 16 terabytes |
File size (log) | 2 terabytes | 2 terabytes | 2 terabytes | 2 terabytes | 2 terabytes | 2 terabytes |
Foreign key table references per table4 | 253 | 253 | 253 | 253 | 253 | 253 |
Identifier length (in characters) | 128 | 128 | 128 | 128 | 128 | 128 |
Instances per computer | 50 instances on a stand-alone server for all SQL Server editions. | 50 instances on a stand-alone server. | 50 instances on a stand-alone server for all SQL Server 2005 editions except for Workgroup Edition. Workgroup Edition supports a maximum of 16 instances. | 50 instances on a stand-alone server. | 50 instances on a stand-alone server for all SQL Server editions except for Workgroup. Workgroup supports a maximum of 16 instances per computer. | 50 instances on a stand-alone server. |
| SQL Server 2005 supports 25 instances on a failover cluster. | 25 instances on a failover cluster. | SQL Server supports 25 instances on a failover cluster. | 25 instances on a failover cluster. | ||
Length of a string containing SQL statements (batch size)1 | 65,536 * Network packet size | 65,536 * Network packet size | 65,536 * Network packet size | 65,536 * Network packet size | 65,536 * Network packet size | 65,536 * Network packet size |
Locks per connection | Maximum locks per server | Maximum locks per server | Maximum locks per server | Maximum locks per server | Maximum locks per server | Maximum locks per server |
Locks per instance of SQL Server5 | Up to 2,147,483,647 | Limited only by memory | Up to 2,147,483,647 | Limited only by memory | Up to 2,147,483,647 | Limited only by memory |
Nested stored procedure levels6 | 32 | 32 | 32 | 32 | 32 | 32 |
Nested subqueries | 32 | 32 | 32 | 32 | 32 | 32 |
Nested trigger levels | 32 | 32 | 32 | 32 | 32 | 32 |
Nonclustered indexes per table | 999 | 999 | 249 | 249 | 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 |
|
| 32 | 32 |
Number of grouping sets generated by operators in the GROUP BY clause | 4,096 | 4,096 | 4,096 | 4,096 | ||
Parameters per stored procedure | 2,100 | 2,100 | 2,100 | 2,100 | 2,100 | 2,100 |
Parameters per user-defined function | 2,100 | 2,100 | 2,100 | 2,100 | 2,100 | 2,100 |
REFERENCES per table | 253 | 253 | 253 | 253 | 253 | 253 |
Rows per table | Limited by available storage | Limited by available storage | Limited by available storage | Limited by available storage | 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 | Limited by number of objects in a database | Limited by number of objects in a database | Limited by number of objects in a database | Limited by number of objects in a database |
Partitions per partitioned table or index | 15,000 | 15,000 | 1,000 | 1,000 | 1,000 | 1,000 |
Statistics on non-indexed columns | 30,000 | 30,000 | 2,000 | 2,000 | 30,000 | 30,000 |
Tables per SELECT statement | Limited only by available resources | Limited only by available resources | 256 | 256 | 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 | Limited by number of objects in a database | Limited by number of objects in a database | Limited by number of objects in a database | Limited by number of objects in a database |
Columns per UPDATE statement (Wide Tables) | 4096 | 4096 | 249 nonclustered and 1 clustered | 249 nonclustered and 1 clustered | 4096 | 4096 |
User connections | 32,767 | 32,767 | 32,767 | 32,767 | 32,767 | 32,767 |
XML indexes | 249 | 249 | 249 | 249 | 249 | 249 |