処理中のC#コードからSQL CLR関数に移行する際の制限、予期しない落とし穴、およびパフォーマンス特性は何ですか?
現在、データベースをまったく使用せずに、プロセス内のC#Asp.netMVCプロジェクトを使用して非常に高速に実行されるデータ量の多いプロセスがいくつかあります。パフォーマンスは非常に重要です。アプリケーションは静的なメモリキャッシュを使用し、複雑な操作を実行して最終結果を取得します。キャッシュの更新は少し面倒です。これらのプロセスの一部をSQLServerクエリに移行して、最終結果を出力することを検討しています。これにより、c#アプリレベルで必要なデータキャッシュが少なくなります。プロセスは複雑であり、データベースに移動するにはSQLServerCLR関数を広範囲に使用する必要があることがわかっています。
データベースを活用することには多くの利点がありますが、CLR関数を使用する必要があるため、いくつかの理由で一時停止します。
Azureなし: SQL CLR関数はAzureでサポートされていません、
高いテストコスト: SQL CLR関数は遅くなる可能性があり、テストにはかなりの作業が必要になります
小規模なユーザーベース: 1時間のグーグルで、CLR機能の使用はやや一般的ではないことがわかり、コミュニティサポート(およびMSサポートの可能性)が懸念事項になっています。
C#アプリを処理中からCLR機能に移行した人からの連絡をお待ちしています。
あなたの答えでは、カスタムSQLCLR関数が必要であると想定してください。