SQL 数据仓库容量限制SQL Data Warehouse capacity limits

Azure SQL 数据仓库的各个组件允许的最大值。Maximum values allowed for various components of Azure SQL Data Warehouse.

工作负荷管理Workload management

类别Category 说明Description 最大值Maximum
数据仓库单位 (DWU)Data Warehouse Units (DWU) 单个 SQL 数据仓库的最大 DWUMax DWU for a single SQL Data Warehouse Gen1:DW6000Gen1: DW6000
Gen2:DW30000cGen2: DW30000c
数据仓库单位 (DWU)Data Warehouse Units (DWU) 每个服务器的默认 DTUDefault DTU per server 54,00054,000
默认情况下,每个 SQL Server(例如 myserver.database.chinacloudapi.cn)的 DTU 配额为 54,000,最多可以允许 DW6000c。By default, each SQL server (for example, myserver.database.chinacloudapi.cn) has a DTU Quota of 54,000, which allows up to DW6000c. 此配额仅仅只是安全限制。This quota is simply a safety limit. 可以通过创建支持票证并选择“配额” 作为请求类型来增加配额。You can increase your quota by creating a support ticket and selecting Quota as the request type. 要计算 DTU 需求,请将所需的 DWU 总数乘以 7.5 或将所需的 cDWU 总数乘以 9.0。To calculate your DTU needs, multiply the 7.5 by the total DWU needed, or multiply 9.0 by the total cDWU needed. 例如:For example:
DW6000 x 7.5 = 45,000 DTUDW6000 x 7.5 = 45,000 DTUs
DW6000c x 9.0 = 54,000 DTU。DW6000c x 9.0 = 54,000 DTUs.
可以在门户中的 SQL Server 选项中查看当前 DTU 消耗量。You can view your current DTU consumption from the SQL server option in the portal. 已暂停和未暂停的数据库都计入 DTU 配额。Both paused and unpaused databases count toward the DTU quota.
数据库连接Database connection 并发打开的最大会话数Maximum Concurrent open sessions 10241024

并发打开的会话数因所选 DWU 而异。The number of concurrent open sessions will vary based on the selected DWU. DWU600c 及更高版本支持最多 1024 个打开的会话。DWU600c and above support a maximum of 1024 open sessions. DWU500c 及更低版本支持最多 512 个并发打开的会话。DWU500c and below support a maximum concurrent open session limit of 512. 请注意,可并发执行的查询数量是有限制的。Note, there are limits on the number of queries that can execute concurrently. 当超出并发限制时,请求将进入内部队列等待处理。When the concurrency limit is exceeded, the request goes into an internal queue where it waits to be processed.
数据库连接Database connection 预处理语句的最大内存Maximum memory for prepared statements 20 MB20 MB
工作负荷管理Workload management 并发查询数上限Maximum concurrent queries 128128

SQL 数据仓库可以执行最多 128 个并发查询并将剩余查询排列起来。SQL Data Warehouse can execute a maximum of 128 concurrent queries and queues remaining queries.

当用户被分配到较高资源类或者 SQL 数据仓库具有较低的数据仓库单位设置时,可减少并发查询的数量。The number of concurrent queries can decrease when users are assigned to higher resource classes or when SQL Data Warehouse has a lower data warehouse unit setting. 某些查询(例如 DMV 查询)始终允许运行,并且不会影响并发查询限制。Some queries, like DMV queries, are always allowed to run and do not impact the concurrent query limit. 有关并发查询执行的更多详细信息,请参阅并发最大值一文。For more details on concurrent query execution, see the concurrency maximums article.
tempdbtempdb 最大 GBMaximum GB 每 DW100 399 GB。399 GB per DW100. 因此,在 DWU1000 的情况下,tempdb 的大小为 3.99 TB。Therefore at DWU1000, tempdb is sized to 3.99 TB.

数据库对象Database objects

类别Category 说明Description 最大值Maximum
数据库Database 最大大小Max size Gen1:磁盘上压缩后 240 TB。Gen1: 240 TB compressed on disk. 此空间与 tempdb 或日志空间无关,因此,此空间专用于永久表。This space is independent of tempdb or log space, and therefore this space is dedicated to permanent tables. 聚集列存储压缩率估计为 5 倍。Clustered columnstore compression is estimated at 5X. 此压缩率允许数据库在所有表都为聚集列存储(默认表类型)的情况下增长到大约 1 PB。This compression allows the database to grow to approximately 1 PB when all tables are clustered columnstore (the default table type).

Gen2:240TB 用于行存储,无限存储空间用于列存储表Gen2: 240TB for rowstore and unlimited storage for columnstore tables
Table 最大大小Max size 磁盘上压缩后 60 TB60 TB compressed on disk
Table 每个数据库的表数Tables per database 100,000100,000
Table 每个表的列数Columns per table 1024 个列1024 columns
Table 每个列的字节数Bytes per column 取决于列数据类型Dependent on column data type. char 数据类型的限制为 8000,nvarchar 数据类型的限制为 4000,MAX 数据类型的限制为 2 GB。Limit is 8000 for char data types, 4000 for nvarchar, or 2 GB for MAX data types.
Table 每行的字节数,定义的大小Bytes per row, defined size 8060 字节8060 bytes

每行字节数的计算方式同于使用页面压缩的 SQL Server。The number of bytes per row is calculated in the same manner as it is for SQL Server with page compression. 与 SQL Server 一样,SQL 数据仓库支持行溢出存储,使可变长度列能够脱行推送 。Like SQL Server, SQL Data Warehouse supports row-overflow storage, which enables variable length columns to be pushed off-row. 对可变长度行进行拖行推送时,只将 24 字节的根存储在主记录中。When variable length rows are pushed off-row, only 24-byte root is stored in the main record. 有关详细信息,请参阅超过 8-KB 的行溢出数据For more information, see Row-Overflow Data Exceeding 8-KB.
Table 每个表的分区数Partitions per table 15,00015,000

为了实现高性能,建议在满足业务需求的情况下尽量减少所需的分区数。For high performance, we recommend minimizing the number of partitions you need while still supporting your business requirements. 随着分区数目的增长,数据定义语言 (DDL) 和数据操作语言 (DML) 操作的开销也会增长,导致性能下降。As the number of partitions grows, the overhead for Data Definition Language (DDL) and Data Manipulation Language (DML) operations grows and causes slower performance.
Table 每个分区边界值的字符数。Characters per partition boundary value. 40004000
索引Index 每个表的非聚集索引数。Non-clustered indexes per table. 5050

仅适用于行存储表。Applies to rowstore tables only.
索引Index 每个表的聚集索引数。Clustered indexes per table. 11

适用于行存储和列存储表。Applies to both rowstore and columnstore tables.
索引Index 索引键大小。Index key size. 900 字节。900 bytes.

仅适用于行存储索引。Applies to rowstore indexes only.

如果创建索引时列中的现有数据未超过 900 字节,那么可以创建最大大小超过 900 字节的 varchar 列上的索引。Indexes on varchar columns with a maximum size of more than 900 bytes can be created if the existing data in the columns does not exceed 900 bytes when the index is created. 但是,以后导致总大小超过 900 字节的对列的 INSERT 或 UPDATE 操作将失败。However, later INSERT or UPDATE actions on the columns that cause the total size to exceed 900 bytes will fail.
索引Index 每个索引的键列数。Key columns per index. 1616

仅适用于行存储索引。Applies to rowstore indexes only. 聚集列存储索引包括所有列。Clustered columnstore indexes include all columns.
统计信息Statistics 组合的列值的大小。Size of the combined column values. 900 字节。900 bytes.
统计信息Statistics 每个统计对象的列数。Columns per statistics object. 3232
统计信息Statistics 每个表的列上创建的统计信息条数。Statistics created on columns per table. 30,00030,000
存储过程Stored Procedures 最大嵌套级数。Maximum levels of nesting. 88
查看View 每个视图的列数Columns per view 1,0241,024

加载Loads

类别Category 说明Description 最大值Maximum
Polybase 加载Polybase Loads 每行 MB 数MB per row 11

Polybase 加载小于 1 MB 的行。Polybase loads rows that are smaller than 1 MB. 不支持将 LOB 数据类型加载到具有聚集列存储索引 (CCI) 的表。Loading LOB data types into tables with a Clustered Columnstore Index (CCI) is not supported.

查询Queries

类别Category 说明Description 最大值Maximum
查询Query 用户表的排队查询数。Queued queries on user tables. 10001000
查询Query 系统视图的并发查询数。Concurrent queries on system views. 100100
查询Query 系统视图的排队查询数。Queued queries on system views 10001000
查询Query 最大值参数Maximum parameters 20982098
批处理Batch 最大大小Maximum size 65,536*409665,536*4096
SELECT 结果SELECT results 每个行的列数Columns per row 40964096

在 SELECT 结果中每行的列数始终不得超过 4096。You can never have more than 4096 columns per row in the SELECT result. 无法保证最大值始终为 4096。There is no guarantee that you can always have 4096. 如果查询计划需要一个临时表,则可能应用每个表最多 1024 列的最大值。If the query plan requires a temporary table, the 1024 columns per table maximum might apply.
SELECTSELECT 嵌套子查询Nested subqueries 3232

在 SELECT 语句中的嵌套子查询数始终不得超过 32 个。You can never have more than 32 nested subqueries in a SELECT statement. 无法保证最大值始终为 32 个。There is no guarantee that you can always have 32. 例如,JOIN 可以将子查询引入查询计划。For example, a JOIN can introduce a subquery into the query plan. 还可以通过可用内存来限制子查询的数量。The number of subqueries can also be limited by available memory.
SELECTSELECT 每个 JOIN 的列数Columns per JOIN 1024 个列1024 columns

JOIN 中的列数始终不得超过 1024。You can never have more than 1024 columns in the JOIN. 无法保证最大值始终为 1024。There is no guarantee that you can always have 1024. 如果 JOIN 计划需要列数多于 JOIN 结果的临时表,那么将 1024 限制应用于此临时表。If the JOIN plan requires a temporary table with more columns than the JOIN result, the 1024 limit applies to the temporary table.
SELECTSELECT 每个 GROUP BY 列的字节数。Bytes per GROUP BY columns. 80608060

GROUP BY 子句中的列的字节数最大为 8060 字节。The columns in the GROUP BY clause can have a maximum of 8060 bytes.
SELECTSELECT 每个 ORDER BY 列的字节数Bytes per ORDER BY columns 8060 字节8060 bytes

ORDER BY 子句中的列的字节数最大为 8060 字节The columns in the ORDER BY clause can have a maximum of 8060 bytes
每个语句的标识符数Identifiers per statement 被引用的标识符数Number of referenced identifiers 65,53565,535

SQL 数据仓库会限制一条查询的单个表达式中可包含的标识符数。SQL Data Warehouse limits the number of identifiers that can be contained in a single expression of a query. 超过此数字会导致 SQL Server 错误 8632。Exceeding this number results in SQL Server error 8632. 有关详细信息,请参阅内部错误:已达到表达式服务限制For more information, see Internal error: An expression services limit has been reached.
字符串文本String literals 一个语句中字符串文本的数量Number of string literals in a statement 20,00020,000

SQL 数据仓库会限制单个查询表达式中可包含的字符串常量数。SQL Data Warehouse limits the number of string constants in a single expression of a query. 超过此数字会导致 SQL Server 错误 8632。Exceeding this number results in SQL Server error 8632.

Metadata元数据

系统视图System view 最大行数Maximum rows
sys.dm_pdw_component_health_alertssys.dm_pdw_component_health_alerts 10,00010,000
sys.dm_pdw_dms_coressys.dm_pdw_dms_cores 100100
sys.dm_pdw_dms_workerssys.dm_pdw_dms_workers 最近 1000 个 SQL 请求的 DMS 辅助角色的总数。Total number of DMS workers for the most recent 1000 SQL requests.
sys.dm_pdw_errorssys.dm_pdw_errors 10,00010,000
sys.dm_pdw_exec_requestssys.dm_pdw_exec_requests 10,00010,000
sys.dm_pdw_exec_sessionssys.dm_pdw_exec_sessions 10,00010,000
sys.dm_pdw_request_stepssys.dm_pdw_request_steps sys.dm_pdw_exec_requests 中存储的最近 1000 个 SQL 请求的步骤总数。Total number of steps for the most recent 1000 SQL requests that are stored in sys.dm_pdw_exec_requests.
sys.dm_pdw_os_event_logssys.dm_pdw_os_event_logs 10,00010,000
sys.dm_pdw_sql_requestssys.dm_pdw_sql_requests sys.dm_pdw_exec_requests 中存储的最近 1000 个 SQL 请求。The most recent 1000 SQL requests that are stored in sys.dm_pdw_exec_requests.

后续步骤Next steps

有关使用 SQL 数据仓库的建议,请参阅速查表For recommendations on using SQL Data Warehouse, see the Cheat Sheet.