2010-06-15 114 views
2

是像正常操作:C#.NET和CLR存儲過程質詢

刪除產品,其中產品編號= X在CLR快於正常的MS SQL 2005服務器存儲過程?

+0

你能更具體嗎?您是在測量總體時間(包括AppDomain熱身),還是隻是加載了所有內容(例如SP版本中的執行計劃)? – 2010-06-15 12:36:02

+0

我正試圖優化存儲過程,因此它們執行速度更快,收稅也更少。 – RPS 2010-06-15 12:40:21

回答

3

一般建議繼續使用T-SQL基於集的操作,只考慮使用CLR爲計算密集型任務(或任務其中有沒有T-SQL當量)號。

見,例如,該MS white paper

0

簡短的答案是否定的。儘管差異可能如此之小,但你永遠無法告訴用本地T-SQL編寫的存儲過程要比用C#編寫的必須編譯爲MSIL才能運行的存儲過程快。

如果您不能使用本機T-SQL進行切實可行的操作,則應該只執行CLR存儲過程。例如,我有一個與EDI一起工作的CLR過程,我必須執行大量的文本處理,並且使用T-SQL不太可行。

0

沒有。實際上它更快地使用存儲過程,因爲並不是每個語句都在每次使用時重新編譯。