現在設計段階にある、スケーラブルでパフォーマンス中心の新しい ASP.Net アプリケーションを組織に導入しています。
マネージャーは、ハイブリッド アプローチを採用することを決定しました。彼らは、CLR ストアド プロシージャを広範に使用し、T-SQL は単純なデータ操作のみに使用することにしました。
コミュニティから次のことを知りたいです。
- 非常に多くの CLR ストアド プロシージャを使用すると、後の段階でパフォーマンスの問題が発生する可能性がありますか?
- パフォーマンスの問題があった場合、MS チームから入手できる修正プログラムはありましたか?
注: Google を実行したところ、次の最も可能性の高い問題が見つかりましたが、最初の 2 つの解決策は見つかりませんでした。
SQL Server がアセンブリを読み込むと、メモリにキャッシュされます。O/S がメモリ不足を SQL Server に通知すると、明示的なガベージ コレクションが実行され、アセンブリがアンロードされる場合があります。これが頻繁に発生すると、パフォーマンスの問題が発生する可能性があります。
SQL CLR コードは、コードが実際に行うことを確認しないため、クエリ オプティマイザーによって正確にコストを計算できません。これは、実行計画に影響を与える可能性があります。
SQL CLR コードは、通常はシングル スレッドであるため、並列処理を妨げる場合があります。これにより、パフォーマンスが低下する場合があります。<< ここで解決策を見つけましたが、CLR Stored Procs のマルチスレッド コードですか? >>
CLR ストアド プロシージャに関する問題と修正について教えてください。