gpt4 book ai didi

sql - 哪个SQL性能更好?

转载 作者:行者123 更新时间:2023-12-04 23:45:09 27 4
gpt4 key购买 nike

我有如下 2 个 sql 语句。他们可以检索相同的数据集。正如我所测试的,似乎 SQL2 总是具有更好的性能。我解释了这两个陈述。他们有相同的执行计划。

任何人都可以帮助解释在这里使用子查询时是否会影响性能?以及如何使用子查询来做sql调优?

非常感谢!

--SQL 1
SELECT ADDRRF.ENTITYKEYID,
ADDRESS1,
ADDRESS2
FROM WODS_STG.BLIS_ADDRESSREFERENCE ADDRRF
LEFT JOIN WODS_STG.BLIS_ADDRESS ADDR
ON ADDRRF.ADDRESSID = ADDR.ADDRESSID
WHERE ADDRRF.ADDRESSTYPEID = 10
AND ADDRRF.ENTITYID = 3;

--SQL 2
SELECT ADDRRF.ENTITYKEYID,
ADDRESS1,
ADDRESS2
FROM (
SELECT *
FROM WODS_STG.BLIS_ADDRESSREFERENCE
WHERE ADDRESSTYPEID = 10
AND ENTITYID = 3
) ADDRRF
LEFT JOIN WODS_STG.BLIS_ADDRESS ADDR
ON ADDRRF.ADDRESSID = ADDR.ADDRESSID;

最佳答案

第二个查询可以更快,因为它从第一个查询缓存的 SGA 区域读取数据。换句话说,第一个查询使用硬解析,第二个查询使用软解析,因为它们具有相同的执行计划。尝试多次运行它们,看看第二个查询是否仍然更快。

关于sql - 哪个SQL性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524194/

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