gpt4 book ai didi

sql - 通过 View 或函数重用 sql

转载 作者:行者123 更新时间:2023-12-02 07:10:43 24 4
gpt4 key购买 nike

我有一个 SQL 查询,我将在多个存储过程中重用该查询。该查询针对多个表进行操作,并根据传递给它的 2 个变量返回一个整数值。

我不想在不同的存储过程中重复查询,而是想共享它并有两个选项:

  1. 创建一个 View ,我可以根据变量加入该 View 并从中获取整数值。
  2. 使用传递给它的条件再次创建一个函数并返回整型变量

我倾向于选项 1,但想了解哪种更好、更常见的做法。哪一个会更好的性能明智等(加入 View 或调用函数)

编辑:RDBMS 是 SQL Server

最佳答案

如果您始终使用相同的参数化谓词来过滤结果,那么我会选择参数化内联表值函数。理论上,这与 View 的处理方式相同,因为它们都由优化器扩展,实际上它可以避免谓词推送问题。这种情况的一个例子可以在this article的第二部分中看到。 .

正如 Andomar 在评论中指出的那样,大多数时候查询优化器确实很好地将谓词下推到需要的位置,但我不知道在任何情况下使用内联 TVF 的性能会更差所以这似乎是两个(非常相似)结构之间的合理默认选择。

我认为 View 的一个优点是,它允许您在没有过滤器或使用不同过滤器的情况下进行选择,因此更加通用。

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

关于sql - 通过 View 或函数重用 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4811350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com