内联表值 UDF 与视图 - 使用哪个?

Posted

技术标签:

【中文标题】内联表值 UDF 与视图 - 使用哪个?【英文标题】:Inline Table-Valued UDF vs. A View - Which to use? 【发布时间】:2010-07-12 13:54:39 【问题描述】:

我最近创建了几个内联表值 UDF,然后在一个案例中使用交叉应用和在另一个案例中使用外部应用在几个视图中引用它们。在我让它工作和测试之后,我认为 UDF 和 Cross/Outer Apply's 的使用非常酷。但后来我突然想到,我可能使用视图也可以做同样的事情。

所以,我的问题是这样的。对于那些做过这类事情的人,您如何决定使用 ITV UDF 与视图?我当然意识到 UDF 可以接受参数,而视图不能,但是当查询视图时,这些 UDF 参数值可以在 Where 子句中使用。

谢谢。

【问题讨论】:

一些不错的相关信息***.com/questions/1526904/… 【参考方案1】:

就个人而言,这取决于用例。我通常会避免视图,因为在我的数据库青年中,我对它们有过一些不好的经历。我也喜欢 UDF,因为它能够在 UDF 内部进行一些参数清理。使用视图时,我不能那么容易地做到这一点(或保证每次都会发生)。

这是我关于这个主题的参考资料:Scary DBA

运行示例代码 - 您可以轻松更改数据集大小以匹配您的数据集 - 您可以看到他在说什么。

【讨论】:

以上是关于内联表值 UDF 与视图 - 使用哪个?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 中将拆分函数转换为内联表值 udf?

内联表重视 UDF 性能

没有参数的内联表值函数?

内联函数和视图之间的区别

将内联表值函数与 Linq 和 Entity Framework Core 一起使用

多语句表值函数与内联表值函数