首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子查询分解问题

子查询分解问题
EN

Stack Overflow用户
提问于 2010-06-03 11:38:40
回答 2查看 819关注 0票数 1

请解释一下。

a)“子查询分解”被用来替换不相关的子查询。相关子查询呢?有没有办法将相关子查询移到“WITH”子句部分?

b) "subquery“"subquery factoring”是否只执行一次?

c)“子查询”vs“子查询分解”,哪一个更好

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-03 11:55:50

您可以使用子查询分解来替换不相关的子查询。

您到底打算如何对相关子查询执行此操作?

我不明白(b)部分,你能换个说法吗?

猜测一下您的意思: WITH子句中的一个子查询通常在主查询执行之前只执行一次。

对于大型数据集,子查询分解显然更好,因为在大多数情况下,即使不是所有情况下,也只执行子查询一次。对于较小的数据集,创建临时表的开销可能比实际查询花费的时间更长。

除了上面提到的性能问题之外,子查询分解还会产生更干净、更易于维护的代码。

票数 2
EN

Stack Overflow用户

发布于 2010-06-03 13:23:26

术语“子查询分解”是指使用子查询的_re_factoring吗?重构是在不改变其结果的情况下改变例程以提高可维护性和可读性的过程。有时候,人们无法将子查询重构为一个公用表表达式(重构为"WITH“子句)。此外,没有关于总是使用CTE或总是使用子查询(或派生表)的黄金法则。哪种方法执行得最好,这取决于数据和DBMS。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2963188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档