Skip to content

Commit 936cfb1

Browse files
20240301 edit pass
1 parent fdcb529 commit 936cfb1

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

articles/synapse-analytics/sql-data-warehouse/sql-data-warehouse-service-capacity-limits.md

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ title: Capacity limits for dedicated SQL pool
33
description: Maximum values allowed for various components of dedicated SQL pool in Azure Synapse Analytics.
44
author: heydh
55
ms.author: dhsundar
6-
ms.reviewer: wiassaf
7-
ms.date: 6/20/2023
6+
ms.reviewer: wiassaf, stwynant
7+
ms.date: 03/01/2024
88
ms.service: synapse-analytics
99
ms.subservice: sql-dw
1010
ms.topic: conceptual
11-
ms.custom: azure-synapse
11+
ms.custom:
12+
- azure-synapse
1213
---
1314

1415
# Capacity limits for dedicated SQL pool in Azure Synapse Analytics
@@ -20,26 +21,25 @@ Maximum values allowed for various components of dedicated SQL pool in Azure Syn
2021
| Category | Description | Maximum |
2122
|:--- |:--- |:--- |
2223
| [Data Warehouse Units (DWU)](what-is-a-data-warehouse-unit-dwu-cdwu.md) |Max DWU for a single dedicated SQL pool | Gen1: DW6000<br></br>Gen2: DW30000c |
23-
| [Data Warehouse Units (DWU)](what-is-a-data-warehouse-unit-dwu-cdwu.md) |Default DTU per server |54,000<br></br>By default, each SQL server (for example, myserver.database.windows.net) 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](sql-data-warehouse-get-started-create-support-ticket.md) and selecting *Quota* as the request type. To calculate your DTU needs, multiply the 7.5 by the total DWU needed, or multiply 9 by the total cDWU needed. For example:<br></br>DW6000 x 7.5 = 45,000 DTUs<br></br>DW7500c x 9 = 67,500 DTUs.<br></br>You can view your current DTU consumption from the SQL server option in the portal. Both paused and unpaused databases count toward the DTU quota. |
24-
| Database connection |Maximum Concurrent open sessions |1024<br/><br/>The number of concurrent open sessions will vary based on the selected DWU. DWU1000c and above support a maximum of 1024 open sessions. 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.<br><br/>Idle sessions are **NOT** automatically killed after 30 minutes |
24+
| [Data Warehouse Units (DWU)](what-is-a-data-warehouse-unit-dwu-cdwu.md) |Default [Database Transaction Unit (DTU)](/azure/azure-sql/database/service-tiers-dtu?bc=%2fazure%2fsynapse-analytics%2fbreadcrumb%2ftoc.json&toc=%2fazure%2fsynapse-analytics%2ftoc.json) per server |54,000<br></br>By default, each SQL server (for example, `myserver.database.windows.net`) 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](sql-data-warehouse-get-started-create-support-ticket.md) and selecting *Quota* as the request type. To calculate your DTU needs, multiply the 7.5 by the total DWU needed, or multiply 9 by the total cDWU needed. For example:<br></br>DW6000 x 7.5 = 45,000 DTUs<br></br>DW7500c x 9 = 67,500 DTUs.<br></br>You can view your current DTU consumption from the SQL server option in the portal. Both paused and unpaused databases count toward the DTU quota. |
25+
| Database connection |Maximum Concurrent open sessions |1024<br/><br/>The number of concurrent open sessions vary based on the selected DWU. DWU1000c and higher support a maximum of 1,024 open sessions. DWU500c and lower 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.<br><br/>Idle session connections are not automatically closed. |
2526
| Database connection |Maximum memory for prepared statements |20 MB |
26-
| [Workload management](resource-classes-for-workload-management.md) |Maximum concurrent queries |128<br/><br/> A maximum of 128 concurrent queries will execute and remaining queries will be queued.<br/><br/>The number of concurrent queries can decrease when users are assigned to higher resource classes or when the [data warehouse unit](memory-concurrency-limits.md) setting is lowered. Some queries, like DMV queries, are always allowed to run and do not impact the concurrent query limit. For more information on concurrent query execution, see the [concurrency maximums](memory-concurrency-limits.md) article. |
27-
| [tempdb](sql-data-warehouse-tables-temporary.md) |Maximum GB |399 GB per DW100c. For example, at DWU1000c, tempdb is sized to 3.99 TB. |
28-
||||
27+
| [Workload management](resource-classes-for-workload-management.md) |Maximum concurrent queries |128<br/><br/>A maximum of 128 concurrent queries can execute and remaining queries are queued.<br/><br/>The number of concurrent queries can decrease when users are assigned to higher resource classes or when the [data warehouse unit](memory-concurrency-limits.md) setting is lowered. Some queries, like DMV queries, are always allowed to run and do not affect the concurrent query limit. For more information on concurrent query execution, see the [concurrency maximums](memory-concurrency-limits.md) article. |
28+
| [tempdb](sql-data-warehouse-tables-temporary.md) |Maximum GB |399 GB per DW100c. For example, at DWU1000c, `tempdb` is sized to 3.99 TB. |
2929

3030
## Database objects
3131

3232
| Category | Description | Maximum |
3333
|:--- |:--- |:--- |
34-
| Database |Max size | Gen1: 240 TB compressed on disk. This space is independent of tempdb or log space, and therefore this space is dedicated to permanent tables. Clustered columnstore compression is estimated at 5X. This compression allows the database to grow to approximately 1 PB when all tables are clustered columnstore (the default table type). <br/><br/> Gen2: Unlimited storage for columnstore tables. Rowstore portion of the database is still limited to 240 TB compressed on disk. |
34+
| Database |Max size | Gen1: 240 TB compressed on disk. This space is independent of `tempdb` or log space, and therefore this space is dedicated to permanent tables. Clustered columnstore compression is estimated at 5X. This compression allows the database to grow to approximately 1 PB when all tables are clustered columnstore (the default table type). <br/><br/> Gen2: Unlimited storage for columnstore tables. Rowstore portion of the database is still limited to 240 TB compressed on disk. |
3535
| Table |Max size |Unlimited size for columnstore tables. <br>60 TB for rowstore tables compressed on disk. |
3636
| Table |Tables per database | 100,000 |
37-
| Table |Columns per table |1024 columns |
37+
| Table |Columns per table |1,024 columns |
3838
| Table |Bytes per column |Dependent on column [data type](sql-data-warehouse-tables-data-types.md). Limit is 8000 for char data types, 4000 for nvarchar, or 2 GB for MAX data types. |
39-
| Table |Bytes per row, defined size |8060 bytes<br/><br/>The number of bytes per row is calculated in the same manner as it is for SQL Server with page compression. Like SQL Server, row-overflow storage is supported, which enables **variable length columns** to be pushed off-row. When variable length rows are pushed off-row, only 24-byte root is stored in the main record. For more information, see [Row-Overflow Data Exceeding 8 KB](/previous-versions/sql/sql-server-2008-r2/ms186981(v=sql.105)). |
39+
| Table |Bytes per row, defined size |8,060 bytes<br/><br/>The number of bytes per row is calculated in the same manner as it is for SQL Server with page compression. Like SQL Server, row-overflow storage is supported, which enables **variable length columns** to be pushed off-row. When variable length rows are pushed off-row, only 24-byte root is stored in the main record. For more information, see [Row-Overflow Data Exceeding 8 KB](/previous-versions/sql/sql-server-2008-r2/ms186981(v=sql.105)). |
4040
| Table |Partitions per table |15,000<br/><br/>For high performance, we recommend minimizing the number of partitions you need while still supporting your business requirements. As the number of partitions grows, the overhead for Data Definition Language (DDL) and Data Manipulation Language (DML) operations grows and causes slower performance. |
4141
| Table |Characters per partition boundary value. |4000 |
42-
| Index |Non-clustered indexes per table. |50<br/><br/>Applies to rowstore tables only. |
42+
| Index |Nonclustered indexes per table. |50<br/><br/>Applies to rowstore tables only. |
4343
| Index |Clustered indexes per table. |1<br><br/>Applies to both rowstore and columnstore tables. |
4444
| Index |Index key size. |900 bytes.<br/><br/>Applies to rowstore indexes only.<br/><br/>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. However, later INSERT or UPDATE actions on the columns that cause the total size to exceed 900 bytes will fail. |
4545
| Index |Key columns per index. |16<br/><br/>Applies to rowstore indexes only. Clustered columnstore indexes include all columns. |
@@ -49,14 +49,13 @@ Maximum values allowed for various components of dedicated SQL pool in Azure Syn
4949
| Stored Procedures |Maximum levels of nesting. |8 |
5050
| View |Columns per view |1,024 |
5151
| Workload Classifier |User-defined classifier |100 |
52-
||||
5352

5453
## Loads
5554

5655
| Category | Description | Maximum |
5756
|:--- |:--- |:--- |
5857
| Polybase Loads |MB per row |1<br/><br/>Polybase loads rows that are smaller than 1 MB. Loading LOB data types into tables with a Clustered Columnstore Index (CCI) is not supported.<br/> |
59-
|Polybase Loads|Total number of files|1,000,000<br/><br/>Polybase loads can not exceed more than 1M files. You may experience the following error: **Operation failed as split count exceeding upper bound of 1000000**.|
58+
|Polybase Loads|Total number of files|1,000,000<br/><br/>Polybase loads cannot exceed more than 1M files. You might experience the following error: **Operation failed as split count exceeding upper bound of 1000000**.|
6059

6160
## Queries
6261

@@ -67,18 +66,17 @@ Maximum values allowed for various components of dedicated SQL pool in Azure Syn
6766
| Query |Queued queries on system views |1000 |
6867
| Query |Maximum parameters |2098 |
6968
| Batch |Maximum size |65,536*4096 |
70-
| SELECT results |Columns per row |4096<br/><br/>You can never have more than 4096 columns per row in the SELECT result. There is no guarantee that you can always have 4096. If the query plan requires a temporary table, the 1024 columns per table maximum might apply. |
69+
| SELECT results |Columns per row |4096<br/><br/>You can never have more than 4,096 columns per row in the SELECT result. There is no guarantee that you can always have 4096. If the query plan requires a temporary table, the 1,024 columns per table maximum might apply. |
7170
| SELECT |Nested subqueries |32<br/><br/>You can never have more than 32 nested subqueries in a SELECT statement. There is no guarantee that you can always have 32. For example, a JOIN can introduce a subquery into the query plan. The number of subqueries can also be limited by available memory. |
72-
| SELECT |Columns per JOIN |1024 columns<br/><br/>You can never have more than 1024 columns in the JOIN. There is no guarantee that you can always have 1024. If the JOIN plan requires a temporary table with more columns than the JOIN result, the 1024 limit applies to the temporary table. |
73-
| SELECT |Bytes per GROUP BY columns. |8060<br/><br/>The columns in the GROUP BY clause can have a maximum of 8060 bytes. |
74-
| SELECT |Bytes per ORDER BY columns |8060 bytes<br/><br/>The columns in the ORDER BY clause can have a maximum of 8060 bytes |
75-
| Identifiers per statement |Number of referenced identifiers |65,535<br/><br/> The number of identifiers that can be contained in a single expression of a query is limited. Exceeding this number results in SQL Server error 8632. For more information, see [Internal error: An expression services limit has been reached](https://support.microsoft.com/help/913050/error-message-when-you-run-a-query-in-sql-server-2005-internal-error-a). |
71+
| SELECT |Columns per JOIN |1,024 columns<br/><br/>You can never have more than 1,024 columns in the JOIN. There is no guarantee that you can always have 1024. If the JOIN plan requires a temporary table with more columns than the JOIN result, the 1024 limit applies to the temporary table. |
72+
| SELECT |Bytes per GROUP BY columns. |8060<br/><br/>The columns in the GROUP BY clause can have a maximum of 8,060 bytes. |
73+
| SELECT |Bytes per ORDER BY columns |8,060 bytes<br/><br/>The columns in the ORDER BY clause can have a maximum of 8,060 bytes |
74+
| Identifiers per statement |Number of referenced identifiers |65,535<br/><br/> The number of identifiers that can be contained in a single expression of a query is limited. Exceeding this number results in SQL Server error 8632. For more information, see [Internal error: An expression services limit has been reached](https://support.microsoft.com/help/913050/error-message-when-you-run-a-query-in-sql-server-2005-internal-error-a). |
7675
| String literals | Number of string literals in a statement | 32,500 <br/><br/>The number of string constants in a single expression of a query is limited. Exceeding this number results in SQL Server error 8632.|
77-
||||
7876

7977
## Metadata
8078

81-
DMV's will reset when a dedicated SQL pool is paused or when it is scaled.
79+
Cumulative data in DMVs reset when a dedicated SQL pool is paused or when it is scaled.
8280

8381
| System view | Maximum rows |
8482
|:--- |:--- |
@@ -87,10 +85,11 @@ DMV's will reset when a dedicated SQL pool is paused or when it is scaled.
8785
| [sys.dm_pdw_errors](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-errors-transact-sql?view=azure-sqldw-latest&preserve-view=true) |10,000 |
8886
| [sys.dm_pdw_exec_requests](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-exec-requests-transact-sql?view=azure-sqldw-latest&preserve-view=true) |10,000 |
8987
| [sys.dm_pdw_exec_sessions](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-exec-sessions-transact-sql?view=azure-sqldw-latest&preserve-view=true) |10,000 |
90-
| [sys.dm_pdw_request_steps](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-request-steps-transact-sql?view=azure-sqldw-latest&preserve-view=true) |Total number of steps for the most recent 1000 SQL requests that are stored in sys.dm_pdw_exec_requests. |
91-
| [sys.dm_pdw_sql_requests](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-sql-requests-transact-sql?view=azure-sqldw-latest&preserve-view=true) |The most recent 1000 SQL requests that are stored in sys.dm_pdw_exec_requests. |
92-
|||
88+
| [sys.dm_pdw_request_steps](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-request-steps-transact-sql?view=azure-sqldw-latest&preserve-view=true) |Total number of steps for the most recent 1000 SQL requests that are stored in `sys.dm_pdw_exec_requests`. |
89+
| [sys.dm_pdw_sql_requests](/sql/relational-databases/system-dynamic-management-views/sys-dm-pdw-sql-requests-transact-sql?view=azure-sqldw-latest&preserve-view=true) |The most recent 1000 SQL requests that are stored in `sys.dm_pdw_exec_requests`. |
9390

94-
## Next steps
91+
## Related content
9592

96-
For recommendations on using Azure Synapse, see the [Cheat Sheet](cheat-sheet.md).
93+
- [Cheat sheet for dedicated SQL pool (formerly SQL DW) in Azure Synapse Analytics](cheat-sheet.md)
94+
- [Best practices for dedicated SQL pools in Azure Synapse Analytics](../sql/best-practices-dedicated-sql-pool.md)
95+
- [Synapse implementation success methodology: Evaluate dedicated SQL pool design](../guidance/implementation-success-evaluate-dedicated-sql-pool-design.md)

0 commit comments

Comments
 (0)