将Process函数中的C#移动到SQL Server CLR函数

从进程C#代码迁移到SQL CLR函数有哪些限制,意外陷阱和性能特征?

我们目前有几个数据繁重的进程在进程C#Asp.net MVC项目中运行得非常快,而根本没有使用数据库。 表现非常重要。 应用程序使用静态内存缓存并执行复杂操作以获得最终结果。 缓存更新有点麻烦,我们正在考虑将其中一些进程转移到只输出最终结果的SQL Server查询,以便在c#app级别需要更少的数据缓存。 这些过程很复杂,我们知道迁移到数据库需要大量使用SQL Server CLRfunction。

我们在利用数据库方面看到了很多优势,但是由于以下几个原因,CLR函数的必要使用会暂停:

否Azure:Azure 不支持 SQL CLRfunction,

高测试成本: SQL CLRfunction可能更慢,测试将需要大量工作

小用户群:一小时的谷歌搜索显示,使用CLRfunction有点不常见,这使得社区支持(以及可能的MS支持)成为一个问题。

我很乐意听到有人将C#应用程序从进程中移动到CLRfunction。

在您的答案中,请假设需要自定义SQL CLR函数。

您的

  • 安装
  • 测试
  • 调试

使用Sql Server CLRfunction的过程要困难得多 – 我认为你应尽可能自动化。

每次您希望更新function时,您可能还需要获得DBA的同意。

但是,在说“将代码转换为数据”后,有时仍然是一个非常好的选择。

您可以在Azure中执行此操作,如果您自己安装SQLServer并单独许可它,就像它是内部部署一样,而不是将其托管SQLServer环境选项与增量增加一起包括SQLServer-as-a-service。 但是,然后围绕支持数据库配置所有其他基础架构(备份,HA等)