queryinsights.sql池洞察(Transact-SQL)

适用于: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 处理数据修改(INSERTUPDATEDELETE),优化为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;

利用窗口函数计算连续的压力周期和间隙:

-- 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;

后续步骤