我试图为我们的内部消费选择一个层级并详细了解此限制.. Azure SQL 数据库资源限制
一个特殊的问题实例在图表下方,特别突出显示的值
如您所见,从突出显示的情况来看,最大并发限制为 60 个并发登录和 600 个并发会话
问:
单个查询可以并行进行,并且可以有多个会话,这些会话会在此限制下计算吗?
我尝试使用 Paul White 的文章强制并行查询执行计划进行测试,如下所示
DBCC FREEPROCCACHE
DBCC SETCPUWEIGHT(1000)
GO
-- Query to test
some expensive query
GO
DBCC SETCPUWEIGHT(1)
DBCC FREEPROCCACHE
或使用
OPTION (RECOMPILE, QUERYTRACEON 8649)
但是当我使用以下 DMV 检查时,我最多只能进行 9 个会话
select * from sys.dm_os_tasks
where session_id=61
并且这些跟踪标志和 DBCC 选项在 azure 中不起作用。如果我不清楚,请告诉我
当一个任务并行时,它仍然被认为是具有多个请求的单个会话。
希望以下内容能消除您对这两个指标的困惑。我
参考: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 中创建一个并发登录和 100 个并发会话。
如果您想为并发会话设置基线,这是一篇很棒的文章。您可能需要针对 Azure SQL 数据库对其进行调整。