gpt4 book ai didi

SQL - 加入聚合查询或聚合/总和后加入?

转载 作者:行者123 更新时间:2023-12-04 05:19:31 24 4
gpt4 key购买 nike

我很难弄清楚什么是最好的,或者是否存在差异,
但是我没有找到任何 Material 来帮助我理解这一点,
所以我会问这个问题,如果不是为我,然后为其他可能最终处于相同情况的人。

在连接之前或之后聚合子查询 ,在我的特定情况下,由于数据碎片化和规范化程序错误,子查询相当慢,

我得到了一个非常复杂的主查询和一个由 3 个使用联合组合的小查询构建的子查询(将删除重复记录)
我只需要来自这个子查询的一个值(对于每一行),所以在某个时候我最终会总结这个值,(连同必要的控制数据用它分组,这样我就可以加入)

什么会产生最大的影响?

  • 在加入之前求和子查询,然后加入聚合版本
  • 保留原始数据,然后将值与主查询的其余部分相加

  • 请记住,每行将有数千条记录相加,
    并且数据不是本地的而是构建的,因此可能驻留在内存中,
    (这只是从查询优化器的角度猜测)

    最佳答案

    通常我将 group-by 保留在子查询中(在 Oracle 术语中称为“内联 View ”)。
    这样查询就更加简单明了。
    另外我相信执行计划更有效,因为要聚合的数据集更小,结果连接键集也更小。

    但这并不是一个确定的答案。如果您加入内联 View 的行源几乎没有匹配的行,您可能会发现早期加入减少了聚合工作。

    正确的答案是:对特定数据集的查询进行基准测试。

    关于SQL - 加入聚合查询或聚合/总和后加入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13816665/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com