SQLServer的最大容量规范整理标注(2019)

SQLServer的最⼤容量规范整理标注(2019)
最近在做批量插⼊SQL Server时,出现了SQL参数过多的错误异常。经查阅资料,发现SQL server对于SQL中⽤户⾃定义的参数限制为2100个。于是变更了批量插⼊的分组数,解决该问题。
以下是搜集的关于SQL Server的最⼤容量规范,包含数据库引擎对象、实⽤⼯具对象、数据层引⽤对象、复制对象四个对象中的相关最⼤数量和最⼩数量。⼀般开发者重点还是在数据库引擎对象这块。个⼈觉得⽐较重要的都进⾏了加粗变⾊处理。
数据库引擎对象
在 SQL Server 数据库中定义的或在 Transact-SQL 语句中引⽤的各种对象的最⼤⼤⼩和最⼤数量。
SQL Server 数据库引擎 对象
(object)
最⼤⼤⼩/数量 SQL Server (64 位)其他信息
批⼤⼩65,536 * ⽹络数据包⼤⼩⽹络数据包⼤⼩指的是⽤于在应⽤程序和关系 数据库引擎之间进⾏通信
的表格格式数据流 (TDS) 数据包的⼤⼩。 默认的数据包⼤⼩为 4 KB,由“⽹络数据包⼤⼩”配置选项控制。
每个短字符串列的字节数8,000
每个 GROUP BY、ORDER BY 的
字节数
8,060
每个索引键的字节数聚集索引为 900 字节。 ⾮聚集索引为 1,700 字
节。
我和qq的故事
在 SQL Server中,聚集索引键的最⼤字节数不能超过 900。
海南第二中学对于⾮聚集索引键,最⼤值为 1700 个字节数。
你可以使⽤可变长度列来定义键,这些列的最⼤⼤⼩之和可超过
此限制。 但是,这些列中数据的总⼤⼩绝不能超过此限制。
在⾮聚集索引中,可以包含额外的⾮键列,且这些⾮键列不会算
⼊键的⼤⼩限制。 ⾮键列可能有助于更好地执⾏某些查询。
内存优化表中的每个索引键的字节数⾮聚集索引为 2,500 字节。 哈希索引没有限制,
只要全部索引键均适应⾏内即可。
在内存优化表上,⾮聚集索引不能具有声明的最⼤⼤⼩超过
2500 个字节的键列。 这与键列中实际数据是否短于声明的最
⼤⼤⼩并不相关。
因为,哈希索引没有硬性⼤⼩限制。
对于内存优化表的索引,不存在“包含的列”这⼀概念,因为所
有索引本来就覆盖了所有的列。
对于内存优化表,即使⾏⼤⼩为 8060 个字节,⼀些可变长度
列也可以物理⽅式存储于这 8060 个字节以外的空间。 但是,
表上所有索引的所有键列,加上表中任何其他固定长度列,其最
⼤声明⼤⼩不得超过 8060 个字节。
每个外键的字节数900每个主键的字节数900典雅音乐花园
每⾏的字节数8,060SQL Server ⽀持⾏溢出存储,⾏溢出存储使长度可变的列可以被推送到⾏外。 只有 24 字节的根存储在推送出⾏外的可变长度列的主记录中;因此,此版本中的有效⾏限制⾼于 SQL Server早期版本中的有效⾏限制。 有关更多信息,请参阅。
内存优化表中的每⾏字节数8,060启动 SQL Server 2016 (13.x) 内存优化表⽀持⾏外存储。 如果表中的所有列的最⼤⼤⼩超过 8060 个字节,则可变长度列
将被挤出⾏,这是编译时的决定。 存储于⾏外的列仅有 8 字节的引⽤存储于⾏内。 有关详细信息,请参阅 。
存储过程源⽂本中的字节数批处理⼤⼩中的较⼩者或 250 MB
每个 varchar(max) 、
varbinary(max) 、 xml、 text2^31-1
varbinary(max) 、 xml、 text
或 image 列的字节
2^31-1
每个 ntext 或 nvarchar(max) 列
的字符
贵阳中医学院图书馆
2^30-1
每个表的聚集索引数1
GROUP BY、ORDER BY 中的列
仅受字节数限制
GROUP BY WITH CUBE 或
WITH ROLLUP 语句中的列数或表
达式数⽬
10
每个索引键的列数32如果表包含⼀个或多个 XML 索引,由于 XML 列被添加到主XML 索引的聚集键,因此⽤户表的聚集键被限制为 31 列。 在 SQL Server中,可在⾮聚集索引中包括⾮键列以避免最多为 32 个键列的限制。 有关详细信息,请参阅 。
每个外键的列数32
每个主键的列数32
每个⾮宽表的列数1,024
每个宽表的列数30,000
每个 SELECT 语句的列数4,096
每个 INSERT 语句的列数4,096
每个客户端的连接个数已配置连接的最⼤值数据库⼤⼩524,272 TB
每个 SQL Server32,767
每个数据库的⽂件组个数32,767
每个数据库的内存优化数据⽂件组
个数
1
每个数据库的⽂件个数32,767
⽂件⼤⼩(数据)16 TB
⽂件⼤⼩(⽇志)  2 TB
每个数据库的内存优化数据⽂件个数SQL Server 2014 (12.x) 中为 4,096。 更⾼版本的 SQL Server 不会施加这样的严格限制。
第九届海峡两岸知识大赛每个内存优化数据⽂件的差异⽂件1
每个表的外键表引⽤数传出 = 253。 传⼊ = 10,000。有关限制,请参阅 。标识符长度(以字符计)128
每台计算机的实例数独⽴服务器上为 50 个实例。
在使⽤共享集磁盘作为您的集安装的存储选项时,在故障转移集上⽀持 25 个实例。如果您为集安装选择 SMB ⽂件共享作为存储选项,
则 SQL Server 在故障转移集上⽀持 50 个实例。
每个内存优化表的索引个数⾃ SQL Server 2017 (14.x) 起以及在 Azure SQL Database 中为 999
SQL Server 2014 (12.x) 和 SQL Server 2016 (13.x) 中为 8
SQL Server 数据库引擎 对象
(object)
最⼤⼤⼩/数量 SQL Server (64 位)其他信息
包含 SQL 语句的字符串的长度(批⼤⼩)65,536 * ⽹络数据包⼤⼩⽹络数据包⼤⼩指的是⽤于在应⽤程序和关系 数据库引擎之间
进⾏通信的表格格式数据流 (TDS) 数据包的⼤⼩。 默认的数据包⼤⼩为 4 KB,由“⽹络数据包⼤⼩”配置选项控制。
每个连接的锁数每个服务器的最⼤锁数
每个 SQL Server
仅受内存限制
此值针对静态锁分配。 动态锁仅受内存限制。
嵌套存储过程级别数32
如果存储过程访问的数据库多于 64 个,或者交替访问的数据库多于 2 个,将收到错误信息。嵌套⼦查询个数32 嵌套触发器层数32 每个表的⾮聚集索引数
999
当存在以下任意⼦句时,GROUP BY ⼦句中的⾮重复表达式数:CUBE、ROLLUP、GROUPING SETS、WITH CUBE、WITH ROLLUP
32
GROUP BY ⼦句中的运算符⽣成的分组集数⽬
4,096
每个存储过程的参数个数2,100 每个⽤户定义函数的参数个数2,100 每个数据表的 REFERENCE 个数253
每个数据表的⾏数
受可⽤存储空间限制
每个数据库的表数受数据库中对象数限制数据库对象包括诸如表、视图、存储过程、⽤户定义函数、触发
器、规则、默认值和约束等对象。 数据库中所有对象的数量总和不能超过 2,147,483,647。
每个分区表或索引的分区数15,000 ⾮索引列的统计信息条数30,000
每个 SELECT 语句的表个数
仅受可⽤资源限制
每个表的触发器数受数据库中对象数限制数据库对象包括诸如表、视图、存储过程、⽤户定义函数、触发
器、规则、默认值和约束等对象。 数据库中所有对象的数量总和不能超过 2,147,483,647。
每个 UPDATE 语句(宽表)的列数4096
⽤户连接32,767 XML 索引
249
SQL Server 数据库引擎 对象(object)最⼤⼤⼩/数量 SQL Server (64 位)
其他信息
SQL Server 实⽤⼯具对象
在 SQL Server 实⽤⼯具中测试的各种对象的最⼤⼤⼩和最⼤数量。
SQL Server 实⽤⼯具对象
最⼤⼤⼩/数量 SQL Server (64 位)每个 SQL Server 实⽤⼯具的计算机数(物理计算机或虚拟计算机)100每台计算机的 SQL Server 实例数
5每个 SQL Server 实⽤⼯具的 SQL Server 实例总数
200*每个 SQL Server实例的⽤户数据库数(包括数据层应⽤程序)50每个 SQL Server 实⽤⼯具的⽤户数据库总数
齿轮磨损修复
1,000
每个 SQL Server 实⽤⼯具的⽤户数据库总数1,000
SQL Server 实⽤⼯具对象最⼤⼤⼩/数量 SQL Server (64 位)
每个数据库的⽂件组数1
每个⽂件组的数据⽂件数1
每个数据库的⽇志⽂件数1
每台计算机的卷数3
* SQL Server 实⽤⼯具⽀持的 SQL Server 托管实例的最⼤数⽬将会依服务器的硬件配置⽽定。
SQL Server 数据层应⽤程序对象
在 SQL Server 数据层应⽤程序 (DAC) 中测试的各种对象的最⼤⼤⼩和最⼤数量。
SQL Server DAC 对象最⼤⼤⼩/数量 SQL Server (64 位)
每个 DAC 的数据库数1
每个 DAC 的对象数*受数据库中对象数或可⽤内存限制。
*限制中包含的对象类型为⽤户、表、视图、存储过程、⽤户定义函数、⽤户定义数据类型、数据库⾓⾊、架构和⽤户定义表类型。
复制对象
在 SQL Server 复制中定义的各种对象的最⼤⼤⼩和最⼤数量。
SQL Server 复制对象最⼤⼤⼩/数量 SQL Server(64 位)
项⽬(合并发布)2048
项⽬(快照发布或事务发布)32,767
表中的列数*(合并发布)246
表中的列数**(SQL Server 快照发布或事务发布)1,000
表中的列数**(Oracle 快照发布或事务发布)995
⾏筛选器中使⽤的列的字节数(合并发布)1,024
⾏筛选器中使⽤的列的字节数(快照发布或事务发布)8,000
*如果将⾏跟踪⽤于冲突检测(默认设置),则基表最多可以包含 1,024 列,但必须从项⽬中对这些列进⾏筛选,以便最多可发布 246列。 如果使⽤列跟踪,则基表最多可包含 246 列。
**基表可以包含发布数据库中允许的最⼤数量的列(在 SQL Server中为 1,024),但如果这些列的数⽬超过为发布类型指定的最⼤值,则必须从项⽬中筛选这些列。

本文发布于:2024-09-23 14:30:10,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/8815.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据库   对象   限制   发布   内存   数据   定义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议