Azure Synapse Analytics 中专用 SQL 池的容量限制
Azure Synapse Analytics 中专用 SQL 池的各个组件所允许的最大值。
工作负荷管理
类别 | 说明 | 最大值 |
---|---|---|
数据仓库单位 (DWU) | 单个专用 SQL 池的最大 DWU | Gen1:DW6000 Gen2:DW30000c |
数据仓库单位 (DWU) | 每个服务器的默认数据库事务单位 (DTU) | 54,000 默认情况下,每个 SQL Server(例如 myserver.database.chinacloudapi.cn )的 DTU 配额为 54,000,最多可以允许 DW6000c。 此配额仅仅只是安全限制。 可以通过创建支持票证并选择“配额” 作为请求类型来增加配额。 若要计算 DTU 需求,请将所需的 DWU 总数乘以 7.5 或将所需的 cDWU 总数乘以 9。 例如:DW6000 x 7.5 = 45,000 DTU DW7500c x 9 = 67,500 DTU。 可以在门户中的 SQL Server 选项中查看当前 DTU 消耗量。 已暂停和未暂停的数据库都计入 DTU 配额。 |
数据库连接 | 并发打开的最大会话数 | 1024 并发打开的会话数因所选 DWU 而异。 DWU1000c 及更高版本支持最多 1024 个打开的会话。 DWU500c 及更低版本支持最多 512 个并发打开的会话。 请注意,可并发执行的查询数量是有限制的。 当超出并发限制时,请求将进入内部队列等待处理。 空闲会话连接不会自动关闭。 |
数据库连接 | 预处理语句的最大内存 | 20 MB |
工作负荷管理 | 并发查询数上限 | 128 最多可执行 128 个并发查询,其余查询将排队。 将用户分配到更高的资源类或降低数据仓库单位设置时,并发查询的数量可能会减少。 某些查询(例如 DMV 查询)始终允许运行,并且不会影响并发查询限制。 若要详细了解如何执行并发查询,请参阅并发最大值一文。 |
tempdb | 最大 GB | 每 DW100c 399 GB。 例如,在 DWU1000c 的情况下,tempdb 的大小为 3.99 TB。 |
数据库对象
类别 | 说明 | 最大值 |
---|---|---|
数据库 | 最大大小 | Gen1:磁盘上压缩后 240 TB。 此空间与 tempdb 或日志空间无关,因此,此空间专用于永久表。 聚集列存储压缩率估计为 5 倍。 此压缩率允许数据库在所有表都为聚集列存储(默认表类型)的情况下增长到大约 1 PB。 Gen2:列存储表的存储空间不受限制。 数据库的行存储部分仍限制为在磁盘上的压缩大小为 240 TB。 |
表 | 最大大小 | 列存储表的大小不受限制。 磁盘上压缩的行存储表的大小为 60 TB。 |
表 | 每个数据库的表数 | 100,000 |
表 | 每个表的列数 | 1,024 列 |
表 | 每个列的字节数 | 取决于列数据类型。 char 数据类型的限制为 8000,nvarchar 数据类型的限制为 4000,MAX 数据类型的限制为 2 GB。 |
表 | 每行的字节数,定义的大小 | 8,060 字节 每行字节数的计算方式同于使用页面压缩的 SQL Server。 与 SQL Server 一样,支持行溢出存储,这样可以将可变长度列脱行推送。 对可变长度行进行拖行推送时,只将 24 字节的根存储在主记录中。 有关详细信息,请参阅超过 8 KB 的行溢出数据。 |
表 | 每个表的分区数 | 15,000 为了实现高性能,建议在满足业务需求的情况下尽量减少所需的分区数。 随着分区数目的增长,数据定义语言 (DDL) 和数据操作语言 (DML) 操作的开销也会增长,导致性能下降。 |
表 | 每个分区边界值的字符数。 | 4000 |
Index | 每个表的非聚集索引数。 | 50 仅适用于行存储表。 |
索引 | 每个表的聚集索引数。 | 1 适用于行存储和列存储表。 |
索引 | 索引键大小。 | 900 字节。 仅适用于行存储索引。 如果创建索引时列中的现有数据未超过 900 字节,那么可以创建最大大小超过 900 字节的 varchar 列上的索引。 但是,以后导致总大小超过 900 字节的对列的 INSERT 或 UPDATE 操作将失败。 |
索引 | 每个索引的键列数。 | 16 仅适用于行存储索引。 聚集列存储索引包括所有列。 |
统计信息 | 组合的列值的大小。 | 900 字节。 |
统计信息 | 每个统计对象的列数。 | 32 |
统计信息 | 每个表的列上创建的统计信息条数。 | 30,000 |
存储过程 | 最大嵌套级数。 | 8 |
视图 | 每个视图的列数 | 1,024 |
工作负载分类器 | 用户定义的分类器 | 100 |
加载
类别 | 说明 | 最大值 |
---|---|---|
Polybase 加载 | 每行 MB 数 | 1 Polybase 加载小于 1 MB 的行。 不支持将 LOB 数据类型加载到具有聚集列存储索引 (CCI) 的表。 |
Polybase 加载 | 文件总数 | 1,000,000 Polybase 加载不能超过 1 百万个文件。 你可能会遇到以下错误:“操作失败,因为拆分计数超过上限 1000000”。 |
查询
类别 | 说明 | 最大值 |
---|---|---|
查询 | 用户表的排队查询数。 | 1000 |
查询 | 系统视图的并发查询数。 | 100 |
查询 | 系统视图的排队查询数。 | 1000 |
查询 | 最大值参数 | 2098 |
批处理 | 最大大小 | 65,536*4096 |
SELECT 结果 | 每个行的列数 | 4096 在 SELECT 结果中每行的列数始终不得超过 4,096。 无法保证最大值始终为 4096。 如果查询计划需要一个临时表,那么将应用每个表最多 1,024 列的最大值。 |
SELECT | 嵌套子查询 | 32 在 SELECT 语句中的嵌套子查询数始终不得超过 32 个。 无法保证最大值始终为 32 个。 例如,JOIN 可以将子查询引入查询计划。 还可以通过可用内存来限制子查询的数量。 |
SELECT | 每个 JOIN 的列数 | 1,024 列 JOIN 中的列数始终不得超过 1,024。 无法保证最大值始终为 1024。 如果 JOIN 计划需要列数多于 JOIN 结果的临时表,那么将 1024 限制应用于此临时表。 |
SELECT | 每个 GROUP BY 列的字节数。 | 8060 GROUP BY 子句中的列的字节数最大为 8,060 字节。 |
SELECT | 每个 ORDER BY 列的字节数 | 8,060 字节 ORDER BY 子句中的列的字节数最大为 8,060 字节 |
每个语句的标识符数 | 被引用的标识符数 | 65,535 可以包含在一条查询的单个表达式中的标识符数会受到限制。 超过此数字会导致 SQL Server 错误 8632。 有关详细信息,请参阅内部错误:已达到表达式服务限制。 |
字符串文本 | 一个语句中字符串文本的数量 | 32,500 一条查询的单个表达式中字符串常量的数量会受到限制。 超过此数字会导致 SQL Server 错误 8632。 |
元数据
当专用的 SQL 池暂停或缩放时,DMV 中的累积数据将重置。
系统视图 | 最大行数 |
---|---|
sys.dm_pdw_dms_cores | 100 |
sys.dm_pdw_dms_workers | 最近 1000 个 SQL 请求的 DMS 辅助角色的总数。 |
sys.dm_pdw_errors | 10,000 |
sys.dm_pdw_exec_requests | 10,000 |
sys.dm_pdw_exec_sessions | 10,000 |
sys.dm_pdw_request_steps | sys.dm_pdw_exec_requests 中存储的最近 1000 个 SQL 请求的步骤总数。 |
sys.dm_pdw_sql_requests | sys.dm_pdw_exec_requests 中存储的最近 1000 个 SQL 请求。 |