雪花查询配置文件,总持续时间与总执行时间

时间:2021-06-23 16:25:52

标签: snowflake-cloud-data-platform

我正在分析 Snowflake 中的查询性能。

当我在 Snowflake 网络控制台中查看查询配置文件时,例如 https://xxxxxx.snowflakecomputing.com/console#/monitoring/queries/detail?queryId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,我看到“总执行时间”花费了 190 毫秒,我看到“总持续时间”花费了 2.7 秒。

我不明白为什么这两个数字之间存在如此巨大的差异。我在哪里可以了解我的额外 2.51 秒的来源?

total duration execution time

我可以在 Snowflake 文档中看到

<块引用>

执行时间提供有关处理查询期间“时间花在何处”的信息。花费的时间可以分为以下几类:

Processing — CPU 花费在数据处理上的时间。

本地磁盘 IO — 本地磁盘访问阻止处理的时间。

远程磁盘 IO — 处理被远程磁盘访问阻止的时间。

网络通信——处理等待网络数据传输的时间。

同步——参与进程之间的各种同步活动。

初始化 — 设置查询处理所花费的时间。

https://docs.snowflake.com/en/user-guide/ui-query-history.html

但是在执行时间之外还有更多的“时间花费”,我正试图找出它的来源。

2 个答案:

答案 0 :(得分:1)

查看 snowflake.account_usage.query_history 表。它将让您更好地了解运行所需的时间。这是一个示例查询:

select
    QUERY_TEXT,
    EXECUTION_STATUS,
    START_TIME,
    END_TIME,
    TOTAL_ELAPSED_TIME,
    COMPILATION_TIME,
    EXECUTION_TIME,
    QUEUED_PROVISIONING_TIME,
    QUEUED_OVERLOAD_TIME,
    QUEUED_REPAIR_TIME,
    TRANSACTION_BLOCKED_TIME
from snowflake.ACCOUNT_USAGE.QUERY_HISTORY
limit 10

答案 1 :(得分:0)

执行时间实际上是执行查询所花费的时间。总持续时间包括排队/等待仓库、从磁盘/内存读取、结果编译等。