用于CTE的列数是否会影响查询的性能?

时间:2016-05-20 17:22:51

标签: sql sql-server tsql azure-sql-database common-table-expression

在CTE查询中使用更多列会影响性能?我目前正在尝试使用WITH语句执行查询,并且如果我使用更多colum,则接缝,s,加载数据需要更多时间。我是对的吗?

2 个答案:

答案 0 :(得分:3)

CTE中定义的列数应该对查询的实际性能没有影响(它可能会影响编译时间,这通常是微不足道的。)

为什么呢?因为SQL Server"嵌入"查询本身中CTE的代码,然后将所有代码优化在一起。应该删除未使用的列。

这可能过于笼统。在某些情况下,SQL Server不会消除列的工作 - 例如聚合查询中的额外聚合函数或某些子查询。但是,一般来说,重要的是如何使用CTE,而不是在其中定义了多少列。

答案 1 :(得分:0)

您可以将CTE视为一个视图,但它不能实现Disk.So视图在运行时扩展它的定义,CTE也是如此。