我们的 Web 应用程序中加载了一个新的报告仪表板,其中数据源自 Azure SQLDataWareHouse。
仪表板由约 8-10 个图 block 组成,每个图 block 显示不同的指标,由不同的查询加载。
使用一些简单的 ADO.NET 代码从 Web 应用程序执行各种查询,以使用 dashboard
用户帐户连接到 DW。
我已阅读关于 Memory & Concurrency Limits 的两篇文章和 Resource Classes但有件事我就是不明白。
对于我们的 DW 服务级别(Gen2 - DW200c),服务器应支持运行 8 个并发查询。
同样,我们已将 dashboard
用户添加到 staticrc80
资源组,这应使其能够访问所有 8 个并发槽。
但这似乎没有帮助。我的理解是否正确,无论这些资源配置如何,它仍然一次只会为单个用户执行一个单一查询? 并且在同一用户帐户下执行的多个查询仍然会排队?
一种替代方案似乎是我可以为每个图 block 使用不同的用户帐户, 建立8个独立的连接, 运行 8 个单独的查询, 其中每个查询帐户都分配给 staticrc10 角色。
我在这里错过了一些基本的东西吗?此 DW 专用于单个应用程序,具有单个用户帐户读者用户帐户。如何根据资源类别等配置该帐户...以充分利用 8 个并行查询/200 DWU 资源分配。
最佳答案
根据documentation ,DWU200c 的静态资源类 staticrc80
使用 8 个资源槽,因此 DWU200c 最多有 8 个并发槽,我希望单个连接使用所有这些槽,因此您的并发查询将排队,一次一个。
考虑将您的用户切换到 staticrc10
,这将允许最多 8 个并发查询。无需创建 8 个不同的用户。
请问您使用的是 Power BI 吗?此外,DWU200c 对于任何工作负载来说都相当低,它实际上只是为了让事情继续进行。
关于azure - 如何改进 Azure SQL 数据仓库中单个用户的查询执行并行化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624731/