1

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

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

4

1 回答 1

1

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

你可以在这里阅读更多关于它的信息:Appdomain

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

于 2013-10-31T14:06:24.453 回答