看到论坛里很多人问道关于SQL Server能够支持最多多少个数据库,多少个实例,多少张表,每个表最多多少个字段等等的问题。 在MSDN上有一篇文章专门介绍了SQL Server的容量规范,其中包括了SQL Server数据库引擎对象SQL
Server实用工具对象
SQL Server 数据层应用程序对象SQL Server复制对象。明白了SQL
Server的限制可以避免一些错误,比如SQL Server索引键的列数为16,超过16的话就无法创建索引。
这里我只列出SQL Server 数据库中定义的或在 Transact-SQL 语句中引用的各种对象的最大大小和最大数量,其他的大家可以参考上面的链接。
SQL Server 数据库引擎对象 |
最大大小/数量 - SQL Server(32 位) |
最大大小/数量 - SQL Server(64 位) |
||
批大小1 |
65,536 * 网络数据包大小 |
65,536 * 网络数据包大小 |
||
每个短字符串列的字节数 |
8,000 |
8,000 |
||
每个 GROUP BY、ORDER BY 的字节数 |
8,060 |
8,060 |
||
每个索引键的字节数2 |
900 |
900 |
||
每个外键的字节数 |
900 |
900 |
||
每个主键的字节数 |
900 |
900 |
||
每行的字节数8 |
8,060 |
8,060 |
||
存储过程源文本中的字节数 |
批处理大小中的较小者或 250 MB |
批处理大小中的较小者或 250 MB |
||
每个varchar(max)、varbinary(max)、xml、text或 image 列的字节数 |
2^31-1 |
2^31-1 |
||
每个 ntext 或 nvarchar(max) 列的字符数 |
2^30-1 |
2^30-1 |
||
每个表的聚集索引数 |
1 |
1 |
||
GROUP BY、ORDER BY 中的列数 |
仅受字节数限制 |
仅受字节数限制 |
||
GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列数或表达式数目 |
10 |
10 |
||
每个索引键的列数7 |
16 |
16 |
||
每个外键的列数 |
16 |
16 |
||
每个主键的列数 |
16 |
16 |
||
每个非宽表的列数 |
1,024 |
1,024 |
||
每个宽表的列数 |
30,000 |
30,000 |
||
每个 SELECT 语句的列数 |
4,096 |
4,096 |
||
每个 INSERT 语句的列数 |
4096 |
4096 |
||
每个客户端的连接个数 |
已配置连接的最大值 |
已配置连接的最大值 |
||
数据库大小 |
524,272 TB |
524,272 TB |
||
每个 SQL Server 实例的数据库个数 |
32,767 |
32,767 |
||
每个数据库的文件组个数 |
32,767 |
32,767 |
||
每个数据库的文件个数 |
32,767 |
32,767 |
||
文件大小(数据) |
16 TB |
16 TB |
||
文件大小(日志) |
2 TB |
2 TB |
||
每个表的外键表引用数4 |
253 |
253 |
||
标识符长度(以字符计) |
128 |
128 |
||
每台计算机的实例数 |
所有 SQL Server 版本的独立服务器上为 50 个实例。 在使用共享群集磁盘作为您的群集安装的存储选项时,SQL Server 在故障转移群集上支持 25 个实例。如果您为群集安装选择 SMB 文件共享作为存储选项,则在 SQL Server 故障转移群集上支持 50 个实例。有关详细信息,请参阅数据文件的存储类型。 |
独立服务器上为 50 个实例。 在使用共享群集磁盘作为您的群集安装的存储选项时,在故障转移群集上支持 25 个实例。如果您为群集安装选择 SMB 文件共享作为存储选项,则 SQL Server 在故障转移群集上支持 50 个实例。有关详细信息,请参阅数据文件的存储类型。 |
||
包含 SQL 语句的字符串的长度(批大小)1 |
65,536 * 网络数据包大小 |
65,536 * 网络数据包大小 |
||
每个连接的锁数 |
每个服务器的最大锁数 |
每个服务器的最大锁数 |
||
每个 SQL Server 实例的锁数5 |
最多 2,147,483,647 |
仅受内存限制 |
||
嵌套存储过程级别数6 |
32 |
32 |
||
嵌套子查询个数 |
32 |
32 |
||
嵌套触发器层数 |
32 |
32 |
||
每个表的非聚集索引数 |
999 |
999 |
||
存在以下任意子句的情况下 GROUP BY 子句中的非重复表达式数目:CUBE、ROLLUP、GROUPING SETS、WITH CUBE、WITH ROLLUP |
32 |
32 |
||
GROUP BY 子句中的运算符生成的分组集数目 |
4,096 |
4,096 |
||
每个存储过程的参数个数 |
2,100 |
2,100 |
||
每个用户定义函数的参数个数 |
2,100 |
2,100 |
||
每个数据表的 REFERENCE 个数 |
253 |
253 |
||
每个数据表的行数 |
受可用存储空间限制 |
受可用存储空间限制 |
||
每个数据库的表数3 |
受数据库中对象数限制 |
受数据库中对象数限制 |
||
每个分区表或索引的分区数 |
1,000
|
15,000 |
||
非索引列的统计信息条数 |
30,000 |
30,000 |
||
每个 SELECT 语句的表个数 |
仅受可用资源限制 |
仅受可用资源限制 |
||
每个表的触发器个数3 |
受数据库中对象数限制 |
受数据库中对象数限制 |
||
每个 UPDATE 语句(宽表)的列数 |
4096 |
4096 |
||
用户连接 |
32,767 |
32,767 |
||
XML 索引 |
249 |
249 |