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
每个索引键的字节数

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

注意:
SQL Server支持行溢出存储,允许将可变长度列推送到行外。 对于从行中推出的可变长度列,只有 24 字节的根存储在main记录中;因此,有效行限制高于以前版本的 SQL Server。 有关详细信息,请参阅 SQL Server 联机丛书中的“行溢出数据超过 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支持故障转移群集上的 25 个实例SQL Server如果选择 SMB 文件共享作为群集安装的存储选项,则支持故障转移群集上的 50 个实例。有关详细信息,请参阅安装 SQL Server 2014 的硬件和软件要求
独立服务器上为 50 个实例。

使用共享群集磁盘作为群集安装的存储选项时,故障转移群集上的 25 个实例SQL Server如果选择 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 数据层应用程序对象

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

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 实用工具功能和任务