我正在分析 Snowflake 中的查询性能。
当我在 Snowflake 网络控制台中查看查询配置文件时,例如 https://xxxxxx.snowflakecomputing.com/console#/monitoring/queries/detail?queryId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
,我看到“总执行时间”花费了 190 毫秒,我看到“总持续时间”花费了 2.7 秒。
我不明白为什么这两个数字之间存在如此巨大的差异。我在哪里可以了解我的额外 2.51 秒的来源?
我可以在 Snowflake 文档中看到
<块引用>执行时间提供有关处理查询期间“时间花在何处”的信息。花费的时间可以分为以下几类:
Processing — CPU 花费在数据处理上的时间。
本地磁盘 IO — 本地磁盘访问阻止处理的时间。
远程磁盘 IO — 处理被远程磁盘访问阻止的时间。
网络通信——处理等待网络数据传输的时间。
同步——参与进程之间的各种同步活动。
初始化 — 设置查询处理所花费的时间。
https://docs.snowflake.com/en/user-guide/ui-query-history.html
但是在执行时间之外还有更多的“时间花费”,我正试图找出它的来源。
答案 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)
执行时间实际上是执行查询所花费的时间。总持续时间包括排队/等待仓库、从磁盘/内存读取、结果编译等。