我从事市场研究,并且在编写SQL时正在更好地理解最佳实践。
我遇到的一种情况是使用WITH
子句和使用声明的临时表。
在大多数情况下,我使用with
子句,因为它易于实现(我更喜欢它级联SELECT
)。
但是,在运行时和效率方面使用声明的临时表是否有好处?我更关注每个人的利弊。
答案 0 :(得分:2)
最重要的是首先获得正确工作的查询。任何查询。
如果要重复许多次,请在此处发布,工程师将就如何改进它以及如何衡量其性能发表意见。
许多因素在起作用:架构,软件,版本,服务器分布,输入数量,输出数量等。
答案 1 :(得分:1)
这个决定是逐案的。 WITH子句对于1)在外部查询中多次重复子查询以及2)从外部查询中提取复杂的内部查询以保持内容清洁和可读是有用的。可以通过VIEW轻松替换WITH。将其视为内联视图。
我认为临时表更专业。当您需要在会话期间保留结果集以供多个查询使用时,临时表通常用于缓存。还有其他一些用例,但同样更专注于这种情况。
这两个概念只是“有点”相关。
根据您的情况,WITH或临时表都不合适。