【问题标题】:Is Standard SQL better than Legacy SQL in terms of query optimization?就查询优化而言,标准 SQL 是否优于传统 SQL?
【发布时间】:2018-04-26 17:30:42
【问题描述】:

在 Google 的这个 documentation 页面上,它体现了标准 SQL 的一些优点,但我没有看到任何关于效率的特别之处。

我正在 Google BigQuery 中创建一些视图,并且在旧版和标准版中都可以进行查询。我想知道在标准 SQL 中运行查询是否比在 Legacy SQL 中运行更有效。一种类型的 SQL 语句是否比另一种更优化/更高效?

所有视图都遵循以下格式(两个表之间的内连接):

SELECT c.value, d.value2 
FROM TableA c
INNER JOIN (
   SELECT id, value2
   FROM TableB 
) d
ON d.id = c.id

编辑:

我在同一个数据集上运行了两个相同的查询,以下是结果计划

旧版 SQL

标准 SQL

我很难解释这一点,哪一个有更好的结果?

【问题讨论】:

  • 自己编写两种方式,针对相同的数据运行它们,然后查看在您的特定情况下哪个对您的特定数据表现最好。

标签: google-bigquery


【解决方案1】:

尽可能切换到#standardSQL:即使今天在旧版中具有任何性能优势,但未来的所有性能改进都将发生在标准 SQL 方面。

【讨论】:

  • 如果执行差异超过一个小时,您是否仍建议切换到标准?
  • 我建议提交一个错误报告,然后团队会立即修复它。他们非常认真地改进#standardSQL。同时,使用更快的。
  • 我喜欢你对修复错误时间的乐观态度。
猜你喜欢
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 2014-02-04
  • 2014-11-16
相关资源
最近更新 更多