2010-09-30 74 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等)