SQLAZURE 资源限制 - 最大并发会话数

The*_*war 5 sql-server azure-sql-database

我试图为我们的内部消耗选择一个层,并详细了解此限制。Azure SQL 数据库资源限制

一个特殊的问题实例如下图所示,并特别突出显示了值

在此输入图像描述

正如您所看到的,从突出显示的内容来看,最大并发限制为 60 个并发登录和 600 个并发会话

问:
单个查询可以并行进行,并且可以有多个会话,这些会话会在此限制下计数吗?

我尝试使用 Paul White 的文章强制并行查询执行计划来测试这一点,如下所示

DBCC FREEPROCCACHE
DBCC SETCPUWEIGHT(1000)

GO
-- Query to test  
some expensive query
GO

DBCC SETCPUWEIGHT(1)  
DBCC FREEPROCCACHE   
Run Code Online (Sandbox Code Playgroud)

或使用

OPTION (RECOMPILE, QUERYTRACEON 8649)
Run Code Online (Sandbox Code Playgroud)

但当我使用下面的 DMV 检查时,我最多只能进行 9 个会话

select * from sys.dm_os_tasks 
where session_id=61
Run Code Online (Sandbox Code Playgroud)

这些跟踪标志和 DBCC 选项在 azure 中不起作用。如果我不清楚,请告诉我

Sql*_*ide 4

当任务并行时,它仍然被视为具有多个请求的单个会话。

希望以下内容能够消除您对这两个指标的困惑。我

参考: https: //social.msdn.microsoft.com/Forums/en-US/c073c554-03a3-43b5-9052-4de63d1f44d7/logins-versus-sessions ?forum=ssdsgetstarted

假设您有 10 名开发人员正在开发您的应用程序,他们都使用 SSMS 连接到 Azure SQL。他们将在 Azure SQL 中创建 10 个并发登录和 10 个会话。

现在,假设您的应用程序使用一次登录来连接到 Azure SQL,并且您的应用程序上有 100 个并发用户。这将在 Azure SQL 中创建 1 个并发登录和 100 个并发会话。

如果您想确定并发会话的基线,这是一篇很棒的文章。您可能需要针对 Azure SQL 数据库调整它。