适用于:Microsoft Fabric 中的 SQL 分析终结点和仓库
queryinsights.sql_pool_insights Microsoft 中的 Fabric Data Warehouse 监控资源分配,跟踪配置变更,并识别池压力期。
| 列名称 | 数据类型 | Description |
|---|---|---|
sql_pool_name |
nvarchar(128) | SQL池的名称。 |
timestamp |
datetime2 | 健康检查或容量变更的时间戳。 |
max_resource_percentage |
int | 分配给池的最大资源百分比。 |
is_optimized_for_reads |
bit | 表示池是否配置为可读优化工作负载。 |
current_workspace_capacity |
nvarchar(16) | 目前工作空间使用的容量。 |
is_pool_under_pressure |
bit | 显示泳池是否处于压力状态。 |
注解
在Fabric数据仓库中,资源NON SELECT池之间SELECT执行资源隔离,防止争用。 默认存在两个池:
-
SELECT处理已读(SELECT)查询,优化用于分析/报告。 -
NON SELECT处理数据修改(INSERT,UPDATE,DELETE),优化为ETL/摄取。
基于事件的报告
- 当池配置、工作区容量或压力状态发生变化时,新记录会被记录。
- 如果压力持续1 分钟 或更长时间,压力状态变化会被记录。
- 事件只有在仓库活跃时才会被记录。 如果仓库上没有活动,周期性事件会暂停,一旦检测到活动才恢复。 这意味着在非活动期间,事件记录可能会出现空白,直到仓库重新启用。
Permissions
你应该能访问 Fabric Capacity 工作区内的 SQL 分析端点或仓库,权限为贡献者或更高权限,或带有监视权限的查看器。
例子
使用此视图将查询性能问题与池压力和配置变更关联起来。 利用窗户功能或外部工具可视化压力期。 以下是一些例子:
答: 过去24小时内的压力期
显示过去24小时内泳池压力较大的时期 SELECT :
-- Show periods when the SELECT pool was under pressure in the last 24 hours
SELECT sql_pool_name, timestamp, is_pool_under_pressure
FROM queryinsights.sql_pool_insights
WHERE sql_pool_name = 'SELECT'
AND timestamp >= DATEADD(hour, -24, GETDATE())
AND is_pool_under_pressure = 1
ORDER BY timestamp DESC;
B. 可视化压力趋势
利用窗口函数计算连续的压力周期和间隙:
-- Calculate consecutive pressure periods and gaps using window functions
SELECT sql_pool_name,
timestamp,
is_pool_under_pressure,
LAG(timestamp) OVER (PARTITION BY sql_pool_name ORDER BY timestamp) AS previous_event,
DATEDIFF(minute, LAG(timestamp) OVER (PARTITION BY sql_pool_name ORDER BY timestamp), timestamp) AS minutes_since_last_event
FROM queryinsights.sql_pool_insights
WHERE sql_pool_name = 'SELECT'
ORDER BY timestamp;