监视 T-SQL 查询(预览版)

适用于:✅Microsoft Fabric 中的 SQL 分析终结点和仓库

Important

此功能目前为预览版

使用 Data Warehouse Monitor 查看运行和历史 T-SQL 查询、长时间运行的查询以及频繁运行的查询,而无需运行 T-SQL 代码。 通过集成到 Fabric 门户,您可以使用 Data Warehouse Monitor 来确认查询成功完成,分析执行模式以及详细调查慢速查询的运行情况。

Data Warehouse Monitor 以前名为“查询活动”。

先决条件

  • 你必须是工作区中的管理员才能访问 Data Warehouse Monitor。 成员、参与者和查看者无权访问此视图。

开始

可以通过两种方式启动数据仓库监控器。

  • 选择要在工作区视图中监视的仓库旁边的 “更多选项”, 然后选择“ 监视”。

    工作区上下文菜单中“监控”菜单项的屏幕截图。

  • 在要监视的仓库的查询编辑器中,在功能区中选择“ 监视 ”。

    功能区中“监视入口点”的屏幕截图。

查询历史记录

“查询历史记录 ”页上,可以查看最近的查询执行,并确定仓库活动中的模式。 此视图将请求计数图表与详细的结果网格组合在一起,以便你可以从高级趋势移动到特定的查询运行。

  • 使用请求计数图表在所选时间范围内发现活动的峰值。
  • 使用“筛选器”菜单按提交时间(UTC)状态提交者运行源语句类型和标签来优化视图。
  • 使用搜索栏在查询文本或其他列中查找特定关键字。
  • 使用时间筛选器可快速切换过去 24 小时、过去 7 天、过去 30 天或自定义时间范围。
  • 在图表区域上方查看活动筛选器作为可移动药片。 应用或删除筛选器时,监视器将刷新图表和查询网格以匹配当前筛选器集。
  • 选择 “刷新 ”以重新加载当前结果。 如果看到要停止的查询,请使用复选框选中该查询,然后选择“ 取消”。 系统会提示在取消查询之前进行确认。 选择的同一 SQL 会话中所有未选择的查询也会被取消。

Note

目前,在监视体验中应用的筛选器可能不会在图表和数据网格之间同步。 若要查看一致的结果,请使用刷新选项重新加载数据。

“查询历史记录取消”对话框的屏幕截图。

  • 当您选择共享同一查询哈希的一个或多个查询运行时,查看类似运行 即可使用。 使用此选项可比较同一查询模式的执行,并了解运行期间、失败或资源使用情况是否已更改。

查询历史视图中类似运行的屏幕截图。

图表会更新以反映当前筛选器选择,以便更轻松地回答以下问题:

  • 查询量何时增加?
  • 哪个提交者或运行源与活动的峰值相关联?
  • 失败或取消的查询是否集中在特定的时间范围内?

还可以从列菜单自定义表布局:

  • 选择数据网格中显示的列。
  • 拖动列菜单中的项目以重新排序它们。
  • 选择 “应用 ”以更新网格以匹配所选列顺序。

对于每个查询,查询 历史记录 网格中提供了以下详细信息。 某些列默认会被隐藏,可以从Column options中添加。

列名称 Description
分布式语句 ID 每个查询的唯一 ID
查询文本 执行查询的文本
查询哈希 查询形状的哈希值,可帮助你跨运行识别类似的查询逻辑
地位 查询状态:成功、失败或已取消
提交者 发送查询的用户或系统的名称
提交时间 (UTC) 请求到达时的时间戳
Duration 查询完成的总时间
运行源代码 启动会话的客户端程序的名称
CPU 时间 为查询执行分配的总 CPU 时间
远程扫描的数据 从 OneLake 中的远程存储读取的数据量
在磁盘上扫描的数据 从本地磁盘读取的数据量
缓存中扫描的数据 从本地内存缓存读取的数据量
会话 ID 将查询链接到特定用户会话的 ID
标签 提供标签时与查询关联的可选标签
语句类型 运行的 SQL 语句类型,例如 SELECT、INSERT、UPDATE 或 DELETE
行计数 查询返回的行数
批处理 ID 分组查询集的 ID(如果适用)
连接 ID 查询使用的连接标识符
数据库名称 执行时连接的仓库或 SQL 分析终结点的名称
结束时间 查询完成执行时的时间戳
已分发 指示查询是否作为分布式操作运行:1 表示是,0 表示否
结果缓存命中 查询的结果集缓存状态:2 表示缓存命中,1 表示已创建的缓存,0 表示结果集缓存不适用
根批 ID 当查询是嵌套批处理的一部分时,顶级批处理的 ID
SQL 池名称 用于执行请求的 SQL 池的名称
错误代码 查询执行失败时返回的错误代码

还可以找到有关运行查询的相同信息,方法是使用动态管理视图查询洞察视图,例如queryinsights.exec_requests_history

查询分析结果

其他 “监视器 ”选项卡可帮助你从历史记录移动到汇总分析:

  • 长时间运行的查询 有助于识别执行时间一致较高的查询。
  • 经常运行的查询 有助于查找可能受益于优化的重复查询模式。

对于长期查询见解中的每个查询,提供以下详细信息:

列名称 Description
查询文本 执行查询的文本
运行持续时间中值 跨运行的查询执行时间中值(毫秒)
运行计数 执行查询的总次数
上次运行持续时间 上次执行所用的时间(毫秒)
上次运行的分布式语句 ID 上次查询执行的唯一 ID
上次运行会话 ID 上次执行的会话 ID

对于频繁运行的查询见解中的每个查询,提供以下详细信息:

列名称 Description
查询文本 执行查询的文本
平均运行持续时间 跨运行的平均查询执行时间(毫秒)
最大持续时间 最长查询执行时间(毫秒)
最短持续时间 最短查询执行时间(毫秒)
上次运行的分布式语句 ID 上次查询执行的唯一 ID
运行计数 执行查询的总次数
成功运行计数 成功执行查询的次数
失败运行次数 查询执行失败次数
已取消的运行计数 已取消的查询执行次数

若要从这些视图中获取最大值,请执行以下操作:

  • 查询历史记录 开始,确定要调查的时间范围、提交者或运行源。
  • 使用 查看相似运行 来比较具有相同查询哈希的执行情况。
  • 转到 长时间运行的查询,以识别中位持续时间较高的查询模式。
  • 查看 经常运行的查询 ,以查找适合优化的高容量查询模式。

有关查询历史记录中已完成、失败和取消的查询以及聚合见解的相同信息,也可以在 Fabric 数据仓库中的 Query 见解中找到

局限性

  • 根据并发工作负荷,历史查询最多可能需要 15 分钟才能显示在监视器中。
  • 监视器仅显示当前筛选器选择的前 10,000 行。 若要减少结果集,请缩小时间范围或添加筛选器。
  • 如果在创建新仓库后立即打开 Monitor,可能会看到错误 Invalid object name queryinsights.exec_requests_history 。 发生此错误的原因是尚未生成基础系统视图。 解决方法是等待两分钟,然后刷新页面。