何时使用CTE和临时表?

3

我知道这是一个常见的问题,但大多数人经常问到的是这两者之间的性能。我要求的是CTE和临时表的使用案例,以更好地理解它们的用法。

1个回答

2
使用临时表可以使用约束和索引。您还可以在临时表上创建游标,其中CTE在查询结束后终止(强调单个查询)。
我将通过具体的用例回答,并介绍我有经验的应用程序,以便帮助证明我的观点。
我使用过的示例企业应用程序中的常见用例如下:
临时表
通常,我们使用临时表来在需要多个查询时间之前转换数据以进行INSERT或UPDATE适当表中的数据。从多个表中收集类似的数据以操纵和处理数据。
有不同类型的订单(order_type1,order_type2,order_type3),所有这些都在不同的TABLE上,但具有相似的COLUMN。我们有一个存储过程将所有这些表联接成一个#orders临时表,根据现有订单“更新”人的建议订单。
公共表达式
CTE非常适合阅读性,特别是处理单个查询时。在创建需要使用PIVOT、Aggregates等分析的报告时,如果代码行数很多,CTE可以通过将查询分成逻辑部分来提高可读性。
有时两者结合使用。当需要多个查询时,将某些查询拆分为CTE仍然非常有用。
希望这对您有所用处,谢谢!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接