【发布时间】:2019-03-05 09:00:11
【问题描述】:
只有一个基本查询:
在 Azure 中,SQL Datawarehouse 有一种方法可以了解默认资源类及其关联的内存、为给定 SQL 登录用户帐户分配的并发槽。
这可以从 tsql 代码中检索到吗?
【问题讨论】:
标签: azure-sqldw
只有一个基本查询:
在 Azure 中,SQL Datawarehouse 有一种方法可以了解默认资源类及其关联的内存、为给定 SQL 登录用户帐户分配的并发槽。
这可以从 tsql 代码中检索到吗?
【问题讨论】:
标签: azure-sqldw
在 Azure Data 中,Warehouse resource classes 是通过数据库角色实现的。
要找出用户的数据库角色,您可以使用this query:
SELECT DP1.name AS DatabaseRoleName,
isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members AS DRM
RIGHT OUTER JOIN sys.database_principals AS DP1
ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals AS DP2
ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
ORDER BY DP1.name;
AFAIK 没有 DMV 或预定义的存储过程可以显示最大内存大小/并发槽的数字。 话虽如此,在 Gen1 上,您可以使用prc_workload_management_by_DWU 来查找您要查找的信息。对于 Gen2,您可以根据在线书籍编写自己的映射存储过程。
如果您想了解实时资源消耗,请查看sys.dm_pdw_exec_requests 并将其与session_id 上的sys.dm_pdw_exec_sessions 联合起来,以查看哪个用户正在运行每个查询。
【讨论】:
Pio 引用的文章 (Workload management with resource classes) 提到 smallrc 是默认资源类。这适用于所有登录。在 Gen1 上,smallrc 始终获得 1 个并发槽。在 Gen2 上,smallrc 是一个动态资源类,它在实例扩展时添加并发槽。有关如何将并发槽分配给 smallrc 和其余资源类的更多详细信息,请参阅Memory and concurrency limits。
【讨论】: