BigQuery - “经过的时间”或“消耗的时间段”,哪个是更好的衡量标准?

2023-12-25

我试图比较两个查询,以了解哪个查询更好且经过优化。我应该查看“经过的时间”还是“消耗的时隙时间”?哪个是更好的措施?

下面是一个例子:

查询 1 - 经过的时间:0.3 秒。消耗时隙时间:0.100秒 查询 2 - 经过的时间:0.5 秒,消耗的时隙时间:0.081 秒


我们需要两者兼顾。首先,让我们了解一下这些是什么。

“elapsed time”是 BQ 执行查询所花费的总时间。 “时隙时间”是 vCPU 执行查询所花费的总时间。

因此,“经过时间”会告诉您查询执行的速度有多快,而“时隙时间”会告诉您执行查询需要多少 CPU 容量。

理想情况下,“时隙时间”应小于“经过时间”,因为 BQ 会将整个查询分为多个阶段并在不同的 CPU 中执行,并且执行将并行发生。然后,需要一些时间来巩固结果(如果有的话)并给出结果,所以需要一些时间来巩固。

如果表设计得当,我的意思是,完成了正确的分区并定义了集群层次结构,那么“经过的时间”将高于“槽时间”,也不应该有太大的差异。

因此,如果“时隙”远高于“经过时间”,那么优化查询和表设计也有很大的潜力。此外,GCP 将根据执行查询所使用的槽数对 BQ 进行收费。一些链接供参考。

https://cloud.google.com/bigquery/query-plan-explanation https://cloud.google.com/bigquery/query-plan-explanation

https://cloud.google.com/bigquery/docs/slots https://cloud.google.com/bigquery/docs/slots

https://cloud.google.com/bigquery/docs/best-practices-costs https://cloud.google.com/bigquery/docs/best-practices-costs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BigQuery - “经过的时间”或“消耗的时间段”,哪个是更好的衡量标准? 的相关文章

随机推荐