我想了解使用视图代替sql server中存储过程中的临时表的性能优缺点。
我知道两者之间的区别(比如临时表可以提供陈旧数据等),但我可以[不]从性能角度找到任何信息。
答案 0 :(得分:3)
除非您拥有企业版,并且您的视图可以遵循索引视图的规则,否则视图不会提高性能。调用其他视图的视图可能会导致严重的性能问题。临时表确实有过时的数据,但是对于在proc中具有多个动作的事务的假设,这通常是好事,因为所有动作都针对同一组数据进行操作。这导致更少的数据完整性问题。在较小的数据集中,表变量通常比临时表更快,但临时表对于较大的集合往往表现更好,特别是因为它们可以被索引。与所有性能调优一样,根据您的特定硬件和数据库设计存在差异,因此如果您关注性能(应该如此),那么您需要测试各种选项以查看hwat最适合您的特定实例。