2008-10-07 58 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進行簡單的文本操作以及不依賴於外部資源的其他計算。