使用有好处吗CTE's
(common table expressions
)而不是使用temp tables
.
我对它们进行了性能测试,但我找不到它们之间有多大区别。
使用有哪些优点和缺点CTE'S
?
CTE 和临时表之间最大的区别可能是 CTE 的执行范围为singleSELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句。
本质上,您不能像使用临时表那样重用 CTE。
来自文档 http://technet.microsoft.com/en-us/library/ms190766%28v=sql.105%29.aspx
公共表表达式(CTE)可以被认为是临时的
在单个执行范围内定义的结果集
SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句。 CTE 是
与派生表类似,它不存储为对象,并且
仅在查询期间持续。与派生表不同,
CTE可以自引用,并且可以在中多次引用
相同的查询。
CTE 可用于:
创建递归查询。有关详细信息,请参阅使用公用表表达式的递归查询。
当不需要一般使用视图时替代视图;也就是说,您不必将定义存储在元数据中。
启用按从标量子选择派生的列或不确定性或具有外部访问权限的函数进行分组。
在同一语句中多次引用结果表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)