2008-10-07 57 views
8

Web上有几个tutorials描述了使用SQL Server 2005的CLR集成来使用Web Service。对于大多数人来说,这个过程似乎相当复杂。我遇到了几个问题,包括需要更改数据库的信任级别,并使用sgen工具创建静态XmlSerializer程序集;我仍然没有得到它的正常工作...(我确信我只需要多花一点时间和精力)SQL Server - 使用CLR集成来使用Web服务

什么是安全,性能和维护的影响,当这样做建筑类型?这可能是一个相当繁重的过程,维护的便利性相对重要。

我可以自由选择是将它作为UDF集成到SQL Server中,还是将它作为控制台/ Web应用程序的独立.NET库。 SQL CLR与外部程序集成是否值得麻烦?

回答

3

我想你已经回答了你自己的问题,我个人发现任何调用WebService的东西都不止适合存在于SQL Server的外部。复杂性,提升的信任级别,以及您提到的总体错综复杂的过程使得很难记录和难以维护解决方案。

4

简短的回答是,不,SQL CLR集成可能不值得麻烦。

较长的答案有几点,从编程数据库中的CLR开始。如果使用正确,这是一个很好的工具,但它确实增加了内存消耗,并且如果不正确,可能会导致性能问题。我在我的数据库中使用它来实现非常专业化的功能,比如增加RegEx功能,但它的使用很少,经过良好测试的代码可以防止出现尽可能多的问题。

正如您所指出的那样,第二点是您必须修改安全性,开放潜在风险。

使用独立应用程序将数据加载到您的服务器。你将拥有更多的控制权,更少的风险和更容易的时间。

2

我一直在做clr程序,它调用Exchange和AD上的webservices,我同意上面的帖子。它可以工作,但是我们很快就遇到了内存不足的问题,因为内存在SQL Server中的CLR中处理。正如你可以想象的那样,对于小型查询来说性能是可以的,但根本不能扩展。

一般数据库性能决定了你的应用程序的性能,我觉得把这样的逻辑在你的数据库是一个没有没有,如果你没有对你在做什么完全控制。

使用CLR进行简单的文本操作以及不依赖于外部资源的其他计算。