SQL Server 的最大容量规范

下表指定 SQL Server 组件中定义的各种对象的最大大小和数量。 若要导航到 SQL Server 技术的表,请单击其链接:

SQL Server 数据库引擎对象

SQL Server 实用工具对象

SQL Server 数据层应用程序对象

SQL Server 复制对象

数据库引擎对象

下表指定 SQL Server 数据库中定义或 Transact-SQL 语句中引用的各种对象的最大大小和数量。

SQL Server 数据库引擎 对象 最大大小/数字 SQL Server (32 位) 最大大小/数字 SQL Server (64 位)
批次大小

注意:网络数据包大小是用于在应用程序和关系数据库引擎之间通信的表格数据流(TDS)数据包的大小。 默认的数据包大小为 4 KB,由“网络数据包大小”配置选项控制。
65,536 * 网络数据包大小 65,536 * 网络数据包大小
每个短字符串列的字节数 8,000 8,000
每个 GROUP BY 的字节数,ORDER BY 8,060 8,060
每个索引键的字节数

注意:任何索引键中的最大字节数不能超过 SQL Server 中的 900。 可以使用可变长度列定义一个键,该列的最大大小最多可加 900 个以上,前提是这些列中没有插入超过 900 字节的数据的行。 在 SQL Server 中,可以在非聚集索引中包含非键列,以避免最大索引键大小为 900 字节。
900 900
每个外键的字节数 900 900
每个主键的字节数 900 900
每行的字节数

注意:
SQL Server 支持行溢出存储,使可变长度列能够被推送到行外。 只有 24 字节根存储在主记录中,以便将可变长度列推送出行;因此,有效行限制高于以前版本的 SQL Server。 有关详细信息,请参阅 SQL Server 联机丛书中的“Row-Overflow 数据超过 8 KB”主题。
8,060 8,060
内存优化表中的每行字节数

注意:
SQL Server In-Memory OLTP 不支持行溢出存储。 可变长度列不会被推离行。 这会将内存优化表中可以指定的可变长度列的最大宽度限制为最大行大小。 有关详细信息,请参阅 内存优化表中的表和行大小
不支持 8,060
存储过程源文本中的字节数 批处理大小中的较小者或 250 MB 批处理大小中的较小者或 250 MB
每个 varchar(max)varbinary(max)xmltextimage 列的字节数 2^31-1 2^31-1
每个 ntextnvarchar(max) 列的字符数 2^30-1 2^30-1
每个表的聚集索引数 1 1
GROUP BY 中的列,ORDER BY 仅受字节数限制 仅受字节数限制
GROUP BY WITH CUBE 或 WITH ROLLUP 语句中的列或表达式 10 10
每个索引键的列数

注意:如果表包含一个或多个 XML 索引,则用户表的聚类键限制为 15 列,因为 XML 列被添加到主 XML 索引的聚类键。 在 SQL Server 中,可以在非聚集索引中包含非键列,以避免限制最多 16 个键列。 有关详细信息,请参阅 Create Indexes with Included Columns
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
每个数据库的内存优化数据文件组个数 不支持 1
每个数据库的文件个数 32,767 32,767
文件大小(数据) 16 TB 16 TB
文件大小(日志) 2 TB 2 TB
每个数据库的内存优化数据文件个数 不支持 4.096
每个内存优化数据文件的差异文件 不支持 1
每个表的外键表引用数

注意:虽然表可以包含无限数量的 FOREIGN KEY 约束,但建议的最大值为 253。 根据托管 SQL Server 的硬件配置,指定额外的 FOREIGN KEY 约束可能会增加查询优化器的处理成本。
253 253
标识符长度(以字符计) 128 128
每台计算机的实例数 所有 SQL Server 版本的独立服务器上的 50 个实例。

当使用共享群集磁盘作为群集安装 SQL Server 的存储选项时,SQL Server 在故障转移群集上支持 25 个实例,如果选择 SMB 文件共享作为群集安装的存储选项,请参阅 安装 SQL Server 2014 的硬件和软件要求
独立服务器上为 50 个实例。

如果在群集安装中将共享群集磁盘用作存储选项,则故障转移群集最多支持 25 个实例;而如果选择 SMB 文件共享作为存储选项,则故障转移群集支持最多 50 个实例。
每个内存优化表的索引个数 不支持 8
包含 SQL 语句的字符串的长度(批大小)

注意:网络数据包大小是用于在应用程序和关系数据库引擎之间通信的表格数据流(TDS)数据包的大小。 默认的数据包大小为 4 KB,由“网络数据包大小”配置选项控制。
65,536 * 网络数据包大小 65,536 * 网络数据包大小
每个连接的锁数 每个服务器的最大锁数 每个服务器的最大锁数
每个 SQL Server

注意:此值用于静态锁分配。 动态锁仅受内存限制。
最多 2,147,483,647 仅受内存限制
嵌套存储过程级别数

注意:如果存储过程访问的数据库超过 64 个,或以交错方式访问超过 2 个数据库,则会收到错误。
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
每个数据表的行数 受可用存储空间限制 受可用存储空间限制
每个数据库的表数

注意:数据库对象包括表、视图、存储过程、用户定义的函数、触发器、规则、默认值和约束等对象。 数据库中所有对象的总数不能超过 2,147,483,647。
受数据库中对象数限制 受数据库中对象数限制
每个分区表或索引的分区数 1,000

**重要** 在 32 位系统上可以创建具有 1,000 多个分区的表或索引,但不受支持。
15,000
非索引列的统计信息条数 30,000 30,000
每个 SELECT 语句中的表数量 仅受可用资源限制 仅受可用资源限制
每个表的触发器数

注意:数据库对象包括表、视图、存储过程、用户定义的函数、触发器、规则、默认值和约束等对象。 数据库中所有对象的总数不能超过 2,147,483,647。
受数据库中对象数限制 受数据库中对象数限制
每个 UPDATE 语句的列数(宽表) 4096 4096
用户连接 32,767 32,767
XML 索引 249 249

SQL Server 实用工具对象

下表指定在 SQL Server 实用工具中测试的各种对象的最大大小和数量。

SQL Server 实用工具对象 最大大小/数量 SQL Server(32 位) 最大容量/数量,SQL Server(64位)
SQL Server 实用工具中的计算机(物理计算机或虚拟机) 100 100
每台计算机的 SQL Server 实例 5 5
每个 SQL Server 实用工具的 SQL Server 实例总数 200* 200*
每个 SQL Server 实例的用户数据库,包括数据层应用程序 50 50
每个 SQL Server 实用工具的用户数据库总数 1,000 1,000
每个数据库的文件组 1 1
每个文件组的文件数据 1 1
每个数据库的日志文件数 1 1
每台计算机的卷数 3 3

*SQL Server 实用工具支持的 SQL Server 托管实例的最大数目可能会因服务器的硬件配置而异。 有关入门信息,请参阅 SQL Server 实用工具功能和任务。 SQL Server 实用工具控制点在 SQL Server 2014 的每个版本中都不可用。 有关 SQL Server 各版本支持的功能列表,请参阅 SQL Server 2014 各版本支持的功能

SQL Server 数据层应用程序对象

下表指定在 SQL Server 数据层应用程序(DAC)中测试的各种对象的最大大小和数量。

SQL Server DAC 对象 最大尺寸/数量 SQL Server (32 位) 最大大小/数字 SQL Server (64 位)
每个 DAC 的数据库数 1 1
每个 DAC 的对象* 受数据库中对象数或可用内存限制。 受数据库中对象数或可用内存限制。

*限制中包含的对象类型包括用户、表、视图、存储过程、用户定义的函数、用户定义的数据类型、数据库角色、架构和用户定义的表类型。

复制对象

下表指定 SQL Server 复制中定义的各种对象的最大大小和数量。

SQL Server 复制对象 SQL Server(32 位)的最大容量/数量 最大容量/数量 SQL Server (64 位)
项目(合并发布) 256 256
项目(快照发布或事务发布) 32,767 32,767
表格中的列* (合并发布) 246 246
表格中的列**(SQL Server 快照或事务性发布) 1,000 1,000
表中的列** (Oracle 快照或事务发布) 995 995
行筛选器中使用的列的字节数(合并发布) 1,024 1,024
行筛选器中使用的列的字节数(快照发布或事务发布) 8,000 8,000

*如果行跟踪用于冲突检测(默认值),则基表最多可以包含 1,024 列,但必须从文章中筛选列,以便最多发布 246 列。 如果使用列跟踪,则基表最多可包含 246 列。

基表可以包含发布数据库中允许的最大列数(SQL Server 为 1,024列),但如果列超出了为发布类型指定的最大列数,则必须从文章中筛选这些列。

另请参阅

安装 SQL Server 2014 的硬件和软件要求
检查系统配置检查器的参数
SQL Server 实用工具功能和任务