Dot-Net
在 SQL 2005+ 中,CLR 儲存過程是否優於 TSQL 儲存過程?
我目前的觀點是不,更喜歡 Transact SQL 儲存過程,因為它們重量更輕並且(可能)性能更高的選項,而 CLR 過程允許開發人員進行各種惡作劇。
但是最近我需要調試一些寫得很糟糕的 TSQL 儲存過程。像往常一樣,我發現許多問題是由於原始開發人員沒有真正的 TSQL 經驗,他們專注於 ASP.NET / C#。
因此,使用 CLR 程序首先會為這類開發人員提供更熟悉的工具集,其次,調試和測試工具更強大(即 Visual Studio 而不是 SQL Management Studio)。
我很想听聽您的經歷,因為這似乎不是一個簡單的選擇。
編寫良好、經過深思熟慮的 T-SQL 和 CLR 都有位置。如果某些函式不經常呼叫並且如果它需要 SQL Server 2000 中的擴展過程,CLR 可能是一個選項。在數據旁邊執行諸如計算之類的東西也可能很有吸引力。但是通過引入新技術來解決糟糕的程序員聽起來是個壞主意。
CLR 儲存過程並不意味著取代基於集合的查詢。如果您需要查詢數據庫,您仍然需要將 SQL 放入您的 CLR 程式碼中,就像它嵌入在正常程式碼中一樣。這將是白費力氣。
CLR 儲存過程有兩個主要用途:1) 與作業系統互動,例如從文件讀取或在 MSMQ 中刪除消息,以及 2) 執行複雜的計算,尤其是當您已經用 .NET 語言編寫程式碼時做計算。