由于在另一个数据库中调用用户定义函数,性能会丢失

时间:2018-06-07 14:51:08

标签: sql-server sql-server-2012

我正在开发一个在四个不同数据库中具有相同用户定义函数的SQLServer 2012实例。我需要在该功能上引入一个更改,这意味着我将不得不四次复制我的更改。

该函数在每个数据库中减少了依赖对象的数量,所以我想只留下一个数据库中的函数(让我们将它调用主数据库),修改函数并更改对该函数的引用,使它们指向主数据库。

然而,在做之前我有一个问题:它会影响性能吗?该函数是一个没有选择的标量值函数,它只对接收到的参数应用一些逻辑。

祝你好运, 塞尔吉奥

1 个答案:

答案 0 :(得分:0)

同一物理服务器上的数据库应该能够在其他数据库上使用UDF而不会出现任何性能问题。理想情况下,尝试使用对象的完全限定名称,这有助于执行计划和缓存。像:

SELECT column1 FROM the_database.dbo.the_table

另外,如果您正在进行跨数据库调用,它可以帮助您进行故障排除“table1不存在?它就在那里!哦,它在另一个数据库中”。

如果您要通过网络拨打电话,可能会影响性能。