有啥命令可以获取大查询执行计划吗?

Posted

技术标签:

【中文标题】有啥命令可以获取大查询执行计划吗?【英文标题】:Any command to get big query execution plan?有什么命令可以获取大查询执行计划吗? 【发布时间】:2015-05-03 06:52:29 【问题描述】:

有没有办法在大查询中获得查询执行计划以及性能分析。

【问题讨论】:

【参考方案1】:

BigQuery 现在在网页界面中内置了查询说明。这就是我认为你所追求的。

【讨论】:

【参考方案2】:

目前没有。 BigQuery 执行计划不一定如您所愿;由于没有索引,查询引擎不必根据它认为的最佳键/索引来选择策略。

这并不意味着永远不会有解释计划;我们确实意识到了解查询的性能特征的价值。如果您想跟踪问题,请随时在此处提交功能请求:https://code.google.com/p/google-bigquery/。

【讨论】:

【参考方案3】:

也许dryRun 是您感兴趣的。从https://cloud.google.com/bigquery/docs/reference/v2/jobs,搜索dryRun:

[可选] 如果设置,则不实际运行此作业。一个有效的查询将 返回带有一些处理统计信息的大部分为空的响应,而 一个无效的查询将返回相同的错误,如果它不是 空跑。非查询作业的行为未定义。

如果您将 DryRun 标志设置为 true,它将返回有关您的查询的统计信息,即“totalBytesProcessed”,如果查询有效,则不运行您的查询,如果查询有效,您通常会收到相同的错误无效

【讨论】:

【参考方案4】:

2021 年更新

这现在是可能的。来自 CLI:

$ bq show -j --format=prettyjson FULL_JOB_ID

API Call:

GET https://bigquery.googleapis.com/bigquery/v2/projects/projectId/jobs/jobId

【讨论】:

以上是关于有啥命令可以获取大查询执行计划吗?的主要内容,如果未能解决你的问题,请参考以下文章

获取查询的运行时执行计划

MySQL EXPLAIN 命令: 查看查询执行计划

MySQL 执行计划explain详解

MYSQL执行计划explain

大数据ClickHouse进阶:ClickHouse的explain查询执行计划

MySQL——通过EXPLAIN分析SQL的执行计划