MSSQL中的的最大容量规范

0    135    1

Tags:

👉 本文共约7585个字,系统预计阅读时间或需29分钟。

本文介绍了 SQL Server 2016 (13.x) 及更高版本中定义的各种对象的大小和数量上限。 若要查看版本限制,请参阅按 SQL Server 版本划分的计算能力限制

对于 SQL Server 2014 (12.x),请参阅 SQL Server 2014 的最大容量规范

数据库引擎对象

在 SQL Server 数据库中定义的或在 Transact-SQL 语句中引用的各种对象的最大值。

展开表

SQL Server 数据库引擎 对象SQL Server (64 位) 的最大值其他信息
批大小65,536 *(网络数据包大小)网络数据包大小指的是用于在关系数据库引擎和应用程序之间进行通信的表格格式数据流 (TDS) 数据包的大小。 默认数据包大小为 4 KB。 网络数据包大小会控制此配置选项。
包含 Transact-SQL 语句的字符串的长度(字节)65,536 *(网络数据包大小)网络数据包大小指的是用于在关系数据库引擎和应用程序之间进行通信的表格格式数据流 (TDS) 数据包的大小。 默认的数据包大小为 4 KB,由“网络数据包大小”配置选项控制。
每个短字符串列的字节数8,000
GROUP BYORDER BY 的字节数8,060
每个索引键的字节数聚集索引为 900 字节。 非聚集索引为 1,700 个字节。 对于 SQL Server 2014 (12.x) 及更早版本,所有版本对所有索引类型都支持 900 个字节。聚集索引键的最大字节数不能超过 900。 对于非聚集索引键,最大值为 1,700 个字节。 你可以使用可变长度列来定义键,这些列的最大大小之和可超过此限制。 但是,这些列中数据的总大小绝不能超过此限制。 在非聚集索引中,可以包含额外的非键列,且这些非键列不会算入键的大小限制。 非键列可能有助于更好地执行某些查询。
内存优化表中的每个索引键的字节数非聚集索引为 2,500 个字节。 哈希索引没有限制,只要全部索引键均适应行内即可。在内存优化表上,非聚集索引不能具有声明的最大大小超过 2,500 个字节的键列。 这与键列中实际数据是否短于声明的最大大小并不相关。 哈希索引键的大小没有硬性限制。 对于内存优化表的索引,不存在“包含的列”这一概念,因为所有索引本来就覆盖了所有的列。 对于内存优化表,即使行大小为 8,060 个字节,一些可变长度列也可以物理方式存储于这 8,060 个字节以外的空间。 但是,表上所有索引的所有键列,加上表中任何其他固定长度列,其最大声明大小不得超过 8,060 个字节。
每个外键的字节数900
每个主键的字节数900
每行的字节数8,060SQL Server 支持行溢出存储,行溢出存储使长度可变的列可以被推送到行外。 对于被推送到行外的长度可变的列,主记录中仅存储 24 个字节根。 有关更多信息,请参阅大型行支持
内存优化表中的每行字节数8,060SQL Server 2016 (13.x) 及更高版本上的内存优化表支持行外存储。 如果表中的所有列的最大大小超过 8,060 个字节,则长度可变的列被推送到行外;此操作是编译时的决定。 存储于行外的列仅有 8 字节的引用存储于行内。 有关详细信息,请参阅 内存优化表中的表和行大小
存储过程源文本中的字节数批处理大小中的较小者或 250 MB
每个 varchar(max)varbinary(max)xmltextimage 列的字节数2^31-1
每个 ntextnvarchar(max) 列的字符数2^30-1
每个表的聚集索引数1
GROUP BYORDER BY 中的列仅受字节数限制
GROUP BY WITH CUBEGROUP BY WITH ROLLUP 语句中的列或表达式10
每个索引键的列数32如果表包含一个或多个 XML 索引,由于 XML 列被添加到主 XML 索引的聚集键,因此用户表的聚集键被限制为 31 列。 你可在非聚集索引中包括非键列以避免最多为 32 个键列的限制。 有关详细信息,请参阅 Create Indexes with Included Columns
每个外键或主键的列数32
每个 INSERT 语句的列数4,096
每个 SELECT 语句的列数4,096
每个表的列数1,024包含稀疏列集的表最多包含 30,000 列。 请参阅稀疏列集
每个 UPDATE 语句的列数4,096稀疏列集有不同的限制。
每个视图的列数1,024
每个客户端的连接个数已配置连接的最大值
数据库大小524,272 TB
每个 SQL Server32,767
每个数据库的文件组个数32,767
每个数据库的内存优化数据文件组个数1
每个数据库的文件个数32,767
文件大小(数据)16 TB
文件大小(日志)2 TB
每个数据库的内存优化数据文件个数SQL Server 2014 (12.x) 中为 4,096。 对于 SQL Server 2016 (13.x) 及更高版本,此限制更为宽松。
每个内存优化数据文件的差异文件1
每个表的外键表引用数传出 = 253。 传入 = 10,000。有关限制,请参阅 Create Foreign Key Relationships
标识符长度(以字符计)128
每台计算机的实例数独立服务器上为 50 个实例。 使用共享群集驱动器作为存储时,有 25 个故障转移群集实例。 使用 SMB 文件共享作为存储选项时,有 50 个故障转移群集实例。
每个内存优化表的索引个数自 SQL Server 2017 (14.x) 起以及在 Azure SQL 数据库中,该值为 999。 在 SQL Server 2016 (13.x) 和 SQL Server 2014 (12.x) 中,该值为 8。
每个连接的锁数每个服务器的最大锁数
每个 SQL Server仅受内存限制此值针对静态锁分配。 动态锁仅受内存限制。
嵌套存储过程级别数32如果存储过程访问的数据库多于 64 个,或者交替访问的数据库多于 2 个,将收到错误信息。
嵌套子查询个数32
嵌套事务4,294,967,296
嵌套触发器层数32
每个表的非聚集索引数999
当存在以下任意子句时,GROUP BY 子句中的非重复表达式数:CUBEROLLUPGROUPING SETSWITH CUBEWITH ROLLUP32
GROUP BY 子句中的运算符生成的分组集数目4,096
每个存储过程的参数个数2,100
每个用户定义函数的参数个数2,100
每个数据表的 REFERENCE 个数253
每个数据表的行数受可用存储空间限制
每个数据库的表数受数据库中对象总数限制对象包括表、视图、存储过程、用户定义函数、触发器、规则、默认值和约束。 数据库中所有对象的数量总和不能超过 2,147,483,647。
每个分区表或索引的分区数15,000
非索引列的统计信息条数30,000
每个 SELECT 语句的表数目仅受可用资源限制
每个表的触发器数受数据库中对象数限制对象包括表、视图、存储过程、用户定义函数、触发器、规则、默认值和约束。 数据库中所有对象的数量总和不能超过 2,147,483,647。
用户连接32,767
XML 索引249

SQL Server 数据层应用程序对象

在 SQL Server 数据层应用程序 (DAC) 中测试的各种对象的最大值。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复