适用于:Microsoft Fabric 中的 SQL 分析终结点和 Microsoft Fabric 中的仓库
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数据仓库中,资源SELECT池之间NON SELECT执行资源隔离,防止争用。 默认存在两个池:
-
SELECT处理已读(SELECT)查询,优化用于分析和报告。 -
NON SELECT:处理数据修改(INSERT,UPDATE,DELETE),优化为ETL和摄取。
基于事件的报告
- 当池的配置、工作空间容量或压力状态发生变化时,数据库会记录新记录。
- 数据库记录压力状态变化,如果压力持续1 分钟 或更长时间。
- SQL 数据库引擎 只在仓库活跃时记录事件。 如果仓库没有活动,事件会暂停,检测到活动后恢复。 这意味着在非活动期间,事件日志可能会有空白,直到仓库重新激活。
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;