使用 Performance Explorer 分析查询工作负载

您可以在 Snowsight 中使用 Performance Explorer 来监控 SQL 工作负载的交互式指标。这些指标显示了您的 Snowflake 环境的整体运行状况、查询活动、仓库变更和表的变化。

Performance Explorer 的优势

Performance Explorer 可以帮助您回答以下有关 Snowflake 活动的关键问题:

  • 总体活动: 查询通常是否成功?Snowflake 用户能否完成工作?

  • 随着时间的推移而变化: 如果查询活动或资源看起来与我的预期不同,发生了什么变化?这些变化是什么时候发生的?

  • 热点: 当我寻找采取行动的机会时,我应该将注意力集中在哪里?

Performance Explorer 的常见用例

Performance Explorer 可以帮助处理以下用例:

  • 调查有关查询或工作负载的问题报告: 如果 Snowflake 工作负载的行为开始有所不同,请确定最近可能发生的其他变化,例如工作负载所依赖的资源或相邻的工作负载活动。

  • 主动识别热点: 如果仓库或表显示持续存在错误或饱和,请在热点影响关键工作负载之前识别并解决该热点问题。

  • 发现优化机会: 查找可能与其支持的查询活动不匹配的仓库和表,并调整工作负载和资源以使其兼容。

所需权限

被授予 ACCOUNTADMIN 角色 的用户可以访问 Performance Explorer。

未被授予 ACCOUNTADMIN 角色的用户必须被授予以下角色才能访问 Performance Explorer:

  • APP_USAGE_VIEWER 应用程序角色

  • USAGE_VIEWER 数据库角色

例如,如果您希望用户 joe 能够访问 Performance Explorer,请运行以下命令:

USE ROLE ACCOUNTADMIN;

CREATE ROLE pe_viewer_role;
GRANT APPLICATION ROLE SNOWFLAKE.APP_USAGE_VIEWER TO ROLE pe_viewer_role;
GRANT DATABASE ROLE SNOWFLAKE.USAGE_VIEWER TO ROLE pe_viewer_role;
GRANT ROLE pe_viewer_role TO USER joe;
Copy

备注

The USAGE_VIEWER database role provides visibility into historical usage data, which can be used for cost management. For more information, see SNOWFLAKE 数据库角色.

打开 Performance Explorer

要打开 Performance Explorer,请完成以下步骤:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Monitoring » Performance Explorer

Performance Explorer 包含图表,这些图表显示与您的工作负载和 Snowflake 环境的总体运行状况相关的指标。

了解 Performance Explorer 仪表板

您可以使用Performance Explorer 仪表板上的图表来监控 SQL 工作负载的交互式指标,也可以应用筛选器来仅显示与您感兴趣的查询活动和资源有关的指标。

Performance Explorer 筛选器

在 Performance Explorer 仪表板的顶部,您可以应用以下筛选器:

  • Period – 选择时间段,例如上周、最近两周或自定义范围。仪表板显示指定时间段的指标。

    默认情况下,Performance Explorer 显示一周的指标。它支持最长一个月的期限,可以追溯到当前日期。

    多个 Performance Explorer 图表显示了与上一时段相比的变化百分比。上一时段的范围与当前时段范围相对应。例如,如果当前时段为两周,则上一时段为当前时段开始前的两周。

  • Warehouse – 选择一个仓库以仅查看使用该仓库运行的查询活动的指标。要限制列表中的仓库,请使用搜索字段。要清除筛选器,请选择 X

  • Database – 选择一个数据库以仅查看访问该数据库的查询活动的指标。要限制列表中的数据库,请使用搜索字段。要清除筛选器,请选择 X

  • Role – 选择一个角色以仅查看该角色发起的查询活动的指标。要限制列表中的角色,请使用搜索字段。要清除筛选器,请选择 X

Performance Explorer 图表

Performance Explorer 以不同类型的图表显示指标。了解每种图表中的组成部分以及如何解释它们非常重要。

查询运行状况查询活动 部分的折线图与下图类似:

Performance Explorer 查询折线图

下表描述了图中的标注:

标注

描述

1

选择 > 以打开侧面板。

2

显示该时段的平均值或中位数。

3

显示与上一时段相比增加或减少的百分比。

4

表示一小时的值。这些值显示在间隔开始时的一段时间。例如,如果间隔为一小时,则在 9 AM 处显示的值表示从 9 AM 到 10 AM 的间隔。

有些图表包含较大的平均值或中位数以及该时段的变化百分比。当有多条线时,图表上方的关键信息是对应线条的说明。

有些图表的标题旁边有 information icon。将鼠标悬停在图标上可查看与图表中指标有关的信息。

您可以将鼠标悬停在折线图中的某个点上,以查看特定小时的值:

Performance Explorer 折线图详细信息

顶部仓库顶部表 部分的条形图与下图类似:

Performance Explorer 条形图

下表描述了图中的标注:

标注

描述

1

选择 > 以打开侧面板。

2

选择一个选项卡以显示该选项卡上的指标。

3

显示该指标在当前时段的值。

4

显示与上一时段相比增加或减少的百分比。

5

表示没有上一时段的数据可供比较。

在折线图和条形图上,选择 > 可打开侧面板,侧面板会显示与图表上指标有关的更多详细信息。详细信息会因图表中显示的指标而有所不同。大多数侧面板都提供可排序的表,您可以使用这些表来查看该时段内特定仓库、角色和数据库的指标。下图显示了侧面板的示例:

Performance Explorer 侧面板

顶部仓库顶部表 部分的事件图表也与下图类似:

Performance Explorer 事件图表

事件图表显示了该对象类型的可排序事件表。您可以检查数据中是否存在意外事件。有关仓库事件的更多信息,请参阅 WAREHOUSE_EVENTS_HISTORY 视图。有关表事件的更多信息,请参阅 TABLES 视图

监控查询运行状况

Performance Explorer 的这一部分包括有关 Snowflake 环境整体运行状况的指标。您可以监控这些指标,以确保您的用户可以成功运行查询并完成所需的任务。

该部分包括以下指标:

指标

单位

描述

备注

更多信息

Query failures/1K

每 1000 次查询的失败次数

每运行 1,000 次查询的失败查询次数,包括以下指标:

  • 折线图上方的较大数字表示在此时段内每 1,000 次查询的平均失败次数。

  • 百分比值是自上一时段以来失败率变化的百分比。

  • 折线图显示了在此时段内每小时每 1,000 次查询的失败次数。

该指标应较低或为零。如果查询失败,请查看查询历史记录和错误,然后修改查询以解决问题。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图

Query retries/1K

每 1000 次查询的重试次数

每运行 1,000 次查询重试的查询次数,包括以下指标:

  • 折线图上方的较大数字表示在此时段内每 1,000 次查询的平均重试次数。

  • 百分比值是自上一时段以来重试率变化的百分比。

  • 折线图显示了在此时段内每小时每 1,000 次查询的重试次数。

该指标应较低或为零。如果查询要重试,请查看原因,然后采取措施防止查询重试。例如,如果由于内存不足错误而重试查询,则修改仓库设置可能会解决问题。

QUERY_HISTORY 视图

Query overload %

百分比

查询在队列中等待仓库资源占总运行时间的百分比,包括以下指标:

  • 折线图上方的较大数字表示该时段内查询在队列中等待仓库资源的时间的中位数百分比。

  • 百分比值是自上一时段以来等待的查询数量变化的百分比。

  • 折线图显示了查询在此时段内每小时排队等待仓库资源的时间百分比。

该指标应较低或为零。如果查询在运行之前处于等待状态,则仓库资源可能会耗尽,从而导致查询排队直到资源可用为止。

减少队列

Query blocked %

百分比

查询因等待某个资源上的事务锁而处于阻塞状态的时间,占总运行时间的百分比,包括以下指标:

  • 折线图上方的大数字表示此时段内,查询因等待锁而阻塞的耗时百分比中位数。

  • 百分比值表示,查询因阻塞所耗时间相较于上一时段的变化比例。

  • 折线图显示了在该时段内,每小时查询因等待锁而阻塞的耗时百分比。

该指标应较低或为零。如果查询被阻止,请查看查询历史记录和错误,然后修改查询以解决问题。

资源锁定 . . 事务的最佳实践 . . LOCK_WAIT_HISTORY 视图 . . 使用 Query History 监控查询活动 . . QUERY_HISTORY 视图

监控查询活动

Performance Explorer 的这一部分包括有关一段时间内查询活动的指标。您可以监控这些指标,以跟踪查询活动中可能影响资源使用或影响用户成功运行查询能力的任何大规模变化。

该部分包括以下指标:

指标

单位

描述

备注

更多信息

Query duration

在此期间的每小时内完成查询所花费的时间。折线图显示了所有查询的时间中位数、第九十个百分位的查询时间以及第九十九个百分位的查询时间。

该指标因您的数据和正在运行的查询类型而有很大差异。持续时间随时间变化的查询可能需要调查和优化。

探索执行时间 . . 优化查询性能

Query throughput

查询

每小时运行的查询数。

该指标可以揭示查询活动的变化,这可能表明工作负载的新趋势或变化。

优化仓库以提高性能

Query wait time

查询等待仓库资源或因资源锁而耗费的时间量。有关状态(OverloadProvisioningRepairBlocked)的信息,请参阅 QUERY_HISTORY 视图

该指标应较低或为零。如果查询在运行之前处于等待状态,则仓库资源可能会耗尽,从而导致查询排队直到资源可用为止。

减少队列 . . 资源锁定

Query failures

失败

该时段内每小时失败的查询数量。

该指标应较低或为零。如果查询失败,请查看查询历史记录和错误,然后修改查询以解决问题。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图

监控顶部仓库

Performance Explorer 的这一部分包括与 Snowflake 环境中在此时段内变化最大的仓库有关的指标。您可以监控这些指标,确保您的仓库按预期运行,以支持查询活动。这些指标还能显示是否有仓库的查询活动趋势与其他仓库相比存在异常。您还可以确定仓库运行的工作负载的构成是否发生了变化。

该部分中的所有指标均显示指标值和自上一时段以来的变化百分比。变化百分比可能是正数或负数,正变化由向上箭头表示,负变化由向下箭头表示。对于每个指标,Performance Explorer 会显示变化最多的 10 个仓库。要查看更多仓库的指标,请在图表上选择 > 来打开侧面板。如果此指标没有仓库上一时段的值,则显示的是 ---,而不是变化百分比。可能没有值,是因为仓库是新的,或者所测量的事件很少发生。

该部分包括以下指标:

指标

选项卡

单位

描述

备注

更多信息

Warehouses with errors

Query failures/1K

每 1000 次查询的失败次数

对于每个仓库,每运行 1,000 次查询的失败查询数。

该指标应较低或为零。如果查询失败,请查看查询历史记录和错误,然后修改查询以解决问题。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图

Query OOM errors/1K

每 1000 次查询的错误数

对于每个仓库,每运行 1,000 次查询返回“内存不足”错误的查询数。

该指标应较低或为零。如果查询因“内存不足”错误而失败,请查看查询历史记录以确定仓库中哪些查询失败,然后修改运行查询的仓库以避免错误。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图 . . 查询太大而无法放入内存

Query retries/1K

每 1000 次查询的重试次数

对于每个仓库,每运行 1,000 次查询的重试查询数。

该指标应较低或为零。如果由于仓库内存不足而导致查询重试,请查看查询历史记录以确定仓库中哪些查询重试,然后修改运行查询的仓库以避免错误。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图 . . 优化仓库以提高性能

Warehouses with spillage

% queries with bytes spilled

百分比

对于每个仓库,查询在运行时溢出到本地磁盘或远程云存储的百分比。

该指标应较低或为零。如果由于仓库内存不足而导致查询溢出到磁盘,请查看查询历史记录以确定仓库中哪些查询溢出,然后修改运行查询的仓库以避免错误。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图 . . 查询太大而无法放入内存

% bytes spilled of total

百分比

对于每个仓库,运行时溢出到本地磁盘或远程云存储的字节数占读取字节数的百分比。

该指标应较低或为零。如果由于仓库内存不足而导致查询溢出到磁盘,请查看查询历史记录以确定仓库中哪些查询溢出,然后修改运行查询的仓库以避免错误。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图 . . 查询太大而无法放入内存

Query wait time %

Overload %

百分比

对于每个仓库,由于仓库因查询工作负载超载而等待的查询占总运行时间的比例。

该指标应较低或为零。如果查询在运行之前处于等待状态,则仓库资源可能会耗尽,从而导致仓库将查询排队直到资源可用为止。

减少队列

Provisioning %

百分比

对于每个仓库,查询因仓库创建、恢复或调整大小而等待仓库计算资源配置的时间占总运行时间的平均比例。

该指标应较低或为零。如果查询在运行之前处于等待状态,则仓库资源可能会耗尽,从而导致其将查询排队直到资源可用为止。

减少队列

Warehouse query performance

Median query duration

对于每个仓库,查询运行时间的中位数。

该指标因您的数据和正在运行的查询类型而有很大差异。如果查询持续时间中位数显示异常变化,则该仓库支持的工作负载可能发生了变化,或者仓库配置可能发生了变化。

探索执行时间 . . 优化查询性能

Query throughput

查询

对于每个仓库,处理的查询数量。

该指标可以揭示查询活动的变化,这可能需要修改运行查询的仓库。

优化仓库以提高性能

Warehouse events

--

可排序的仓库事件表。

该指标显示了在此时段内哪些仓库发生了变化。检查数据中是否存在意外事件。

WAREHOUSE_EVENTS_HISTORY 视图

监控顶部表

Performance Explorer 的这一部分包括与 Snowflake 环境中在此时段内变化最大的表有关的指标。您可以监控这些指标,以确保您的表能够支持查询活动并按预期返回数据。这些指标还能显示是否有表的查询活动趋势与其他表相比存在异常。您还可以确定最近是否有表发生了变化以及这些表是如何变化的。

该部分中的所有指标均显示指标值和自上一时段以来的变化百分比。变化百分比可能是正数或负数,正变化由向上箭头表示,负变化由向下箭头表示。对于每个指标,Performance Explorer 会显示变化最多的 10 个表。要查看更多表的指标,请在图表上选择 > 来打开侧面板。如果此指标没有表上一时段的值,则显示 ---,而不是变化百分比。可能没有值,是因为表是新的,或者所测量的事件很少发生。

该部分包括以下指标:

指标

选项卡

单位

描述

备注

更多信息

Table query failures/1K

--

每 1000 次查询的失败次数

对于每个表,每运行 1,000 次查询的失败查询数。

该指标应较低或为零。如果查询失败,请查看查询历史记录和错误,然后修改查询以解决问题。

使用 Query History 监控查询活动 . . QUERY_HISTORY 视图

Table queries blocked/1K

--

每 1000 次查询中被阻塞的查询数

对于每个表,每运行 1,000 次查询,其中被阻塞的查询数。

该指标应较低或为零。如果查询被阻止,请查看查询历史记录和错误,然后修改查询以解决问题。

资源锁定 . . 事务的最佳实践 . . LOCK_WAIT_HISTORY 视图 . . 使用 Query History 监控查询活动 . . QUERY_HISTORY 视图

Table read performance

Median read query duration

对于每个表,查询运行时间的中位数。

该指标因您的数据和正在运行的查询类型而有很大差异。持续时间随时间变化的查询可能需要调查和优化。

探索执行时间 . . 优化查询性能

Read query throughput

查询

对于每个表,处理的查询数量。

该指标可以揭示表查询活动的变化。如果表的查询数量增加,则可能需要修改该表才能优化查询性能。例如,您可以对表启用搜索优化。

表设计注意事项 . . 优化查询性能

Table write performance

Median write query duration

对于每个表,数据操作语言 (DML) 操作的运行时间中位数。

该指标因您的数据和正在运行的 DML 操作类型而有很大差异。持续时间随时间变化的 DML 操作可能需要调查和优化。

探索执行时间 . . 优化查询性能

Write query throughput

查询

对于每个表,处理的 DML 操作数。如果表的 DML 操作数量增加,则可能需要修改该表才能优化性能。

该指标可以揭示 DML 操作数量的变化。

表设计注意事项

Table change events

--

A sortable table of table events.

This metric shows which tables changed in the period. Examine the data for unexpected events.

TABLES 视图

语言: 中文