我想知道在查询中使用CTE的准确程度。对于VIEW,我知道它的查询与主查询合并,然后优化器解析并构建合并查询的计划。这就是为什么有时不建议使用VIEWS,因为如果它们有很多表要添加到主查询本身的表中,它们会导致性能下降。
CTE是否以同样的方式处理?
答案 0 :(得分:0)
我设置了一个SQL小提琴,它显示了在简单情况下执行计划是如何相同的(http://www.sqlfiddle.com/#!6/a1ea2/1/0)。
通常,如果没有更详细的细节,非递归CTE的行为与视图或子查询相同。这假设您没有索引视图,这些视图会导致存储统计信息,并使用正确的非聚集索引提供查询性能的优势。