3

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

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

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

否 Azure:Azure不支持SQL CLR 函数,

高测试成本: SQL CLR 函数可能会更慢并且测试需要大量工作

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

我很想听听有人将 C# 应用程序从进程中移动到 CLR 函数。

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

4

2 回答 2

2

您的

  • 编译
  • 安装
  • 测试
  • 调试

使用 Sql Server CLR 函数处理过程要困难得多——我认为你应该尽可能多地自动化。

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

然而,在说“把你的代码带到你的数据”之后,有时仍然是一个很好的选择。

于 2010-09-30T15:13:51.903 回答
0

如果您自己安装 SQLServer 并像在内部部署一样单独许可它,而不是使用他们的托管 SQLServer 环境选项并增加包含 SQLServer-as-a-service 的费用,您可能可以在 Azure 中执行此操作。但是然后围绕支持数据库配置所有其他基础设施(备份、HA 等)

于 2015-10-03T19:21:44.177 回答