在同一服务器上跨数据库访问SQL CLR是否存在性能影响?

时间:2013-10-31 13:35:41

标签: sql-server performance sqlclr

我在MyDataBase中有一个SQL CLR函数MySchema.MyClrFunction。 我可以通过MyDataBase.MySchema.MyClrFunction从同一服务器上的MyOtherDataBase访问它,它工作正常。 我是否期望通过在MyDataBase中注册程序集并再次创建函数来获得性能提升,以便我可以进行数据库内部调用?

是的,我可以自己测试一下,如果没有其他人已经完成这项工作,可能会这样做。

1 个答案:

答案 0 :(得分:1)

我认为没有可衡量的性能影响。即使我们考虑两个测试场景:一个查询大量行与大量小批量,该函数将只从另一个数据库中获取一次,然后保持缓存。 碰巧我在每个数据库上安装了相同的程序集,所以万一我只是在100M行上运行了这样的测试。没有区别。

您可以在此处详细了解:Appdomain

但是,使用其他数据库的clr函数有一些禁忌症。例如,所有数据库都依赖于安装了程序集的数据库。你不能让它脱机,如果它崩溃了,一些进程也会脱轨。此外,您无法使用其他数据库中的函数创建计算列。对我来说,这足以分别在每个数据库上安装程序集。