2010-09-30 75 views
3

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

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

我们利用数据库中看到很多的优点,但需要使用CLR函数给出的几个原因暂停:

没有天青: SQL CLR函数not supported by Azure

高测试成本:的SQL CLR函数可能是慢,测试将采取显著工作

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

我很想听到某位将C#应用程序从进程中移至CLR函数的人。

在你的答案中,请假定自定义的SQL CLR函数是必需的。

回答

2

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

过程是与SQL Server CLR函数了很多困难 - 我想你应该尽可能多的这种自动化尽可能。

您可能还需要在每次希望更新函数时都获得DBA的同意。

但是在说“把你的代码加入你的数据”后,有时候仍然是一个非常好的选择。

+0

简单的FTP部署一个没有db的Asp.net应用程序很难放弃。我正在考虑db,因为我们需要微调数据插入,更新删除过程,这看起来像db领土。通常情况下,我们在专用的箱子里,所以我们拥有全面的控制权,除非交通高峰迫使我们扩展到天蓝色(我们目前所做的)。我认为如果我们建立自己的AMI,我们可以使用亚马逊峰值,但我不希望摆脱数据库构建过程。 – Glenn 2010-09-30 15:22:22

+0

我想知道是否可以尝试在CLR上使用SQL Compact以实现更简单的部署。SQL CLR论坛中的一个老问题似乎没有说明http://social.msdn.microsoft.com/Forums/en-US/sqlnetfx/thread/7146b3ea-6c0d-499f-9176-b14d134bc5a5/ – Glenn 2010-09-30 15:38:15

0

如果您自己安装SQLServer并单独对其进行授权(而不是像内部部署一样),则可能可以在Azure中执行此操作,而不是将它们的托管SQLServer环境选项与包含SQLServer即服务。但是,配置所有其他基础设施以支持数据库将在您身上(备份,HA等)