ama*_*eur 15 sql sql-server performance views function
我有一个SQL查询,我将在多个存储过程中重用.该查询针对多个表,并根据传递给它的2个变量返回一个整数值.
我想共享它并有两个选项,而不是在不同的存储过程中重复查询:
我倾向于选项1但是希望看哪些是更好和更常见的做法.这将是更好的性能明智等(加入视图或调用函数)
编辑:RDBMS是SQL Server
Mar*_*ith 13
如果您将始终使用相同的参数化谓词来过滤结果,那么我将使用参数化的内联表值函数.从理论上讲,它被视为与View相同,因为它们在实践中都被优化器扩展,可以避免谓词推动问题.这种情况的一个例子可以在第二部分中可以看出本文.
正如Andomar在评论中指出的那样,大多数时候查询优化器确实能够很好地将谓词推到需要的位置,但我不知道使用内联TVF的情况会更糟,所以这似乎两个(非常相似)构造之间的合理默认选择.
我可以看到View的一个优点是,它允许您选择没有过滤器或使用不同的过滤器,因此更加通用.
内联TVF也可用于替换标量UDF以提高效率,如本例所示.
归档时间:
14 年,9 月 前
查看次数:
13629 次
最近记录:
9 年,12 月 前