加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

重用sql与视图或功能

发布时间:2020-12-12 16:28:34 所属栏目:MsSql教程 来源:网络整理
导读:我有一个sql查询,我将在多个存储过程中重用.该查询适用于多个表,并根据传递给它的2个变量返回一个整数值. 不要在不同的存储过程中重复查询,我想分享它,并有2个选项: 根据变量创建一个可以加入的视图,并从中获取整数值. 再次使用传递给它的标准创建一个函数并
我有一个sql查询,我将在多个存储过程中重用.该查询适用于多个表,并根据传递给它的2个变量返回一个整数值.

不要在不同的存储过程中重复查询,我想分享它,并有2个选项:

>根据变量创建一个可以加入的视图,并从中获取整数值.
>再次使用传递给它的标准创建一个函数并返回整数变量

我倾向于选择1,但希望有更好的和常见的做法.哪个更好的性能明智等(加入视图或调用函数)

编辑:RDBMS是SQL Server

解决方法

如果您将始终使用相同的参数谓词过滤结果,那么我将去参加一个参数化的内联表值函数.在理论上,这被视为与View相同,因为它们在实践中都被优化器扩展,可以避免谓词推送问题.这样一个例子可以在 this article的第二部分看到.

正如Andomar在评论中指出的那样,查询优化器确实做的很好,把谓词推到需要的位置,但是我并不知道使用内联TVF的情况会更糟,所以这似乎是两个(非常相似)结构之间的理性默认选择.

我可以看到的一个优点是,它将允许您选择没有过滤器或不同的过滤器,因此更多功能.

内联TVFs也可用于替代标量UDF以提高效率as in this example.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读