3

処理中のC#コードからSQL CLR関数に移行する際の制限、予期しない落とし穴、およびパフォーマンス特性は何ですか?

現在、データベースをまったく使用せずに、プロセス内のC#Asp.netMVCプロジェクトを使用して非常に高速に実行されるデータ量の多いプロセスがいくつかあります。パフォーマンスは非常に重要です。アプリケーションは静的なメモリキャッシュを使用し、複雑な操作を実行して最終結果を取得します。キャッシュの更新は少し面倒です。これらのプロセスの一部をSQLServerクエリに移行して、最終結果を出力することを検討しています。これにより、c#アプリレベルで必要なデータキャッシュが少なくなります。プロセスは複雑であり、データベースに移動するにはSQLServerCLR関数を広範囲に使用する必要があることがわかっています。

データベースを活用することには多くの利点がありますが、CLR関数を使用する必要があるため、いくつかの理由で一時停止します。

Azureなし: SQL CLR関数はAzureでサポートされていません

高いテストコスト: SQL CLR関数は遅くなる可能性があり、テストにはかなりの作業が必要になります

小規模なユーザーベース: 1時間のグーグルで、CLR機能の使用はやや一般的ではないことがわかり、コミュニティサポート(およびMSサポートの可能性)が懸念事項になっています。

C#アプリを処理中からCLR機能に移行した人からの連絡をお待ちしています。

あなたの答えでは、カスタムSQLCLR関数が必要であると想定してください。

4

2 に答える 2

2

あなたの

  • コンパイル
  • インストール
  • テスト
  • デバッグ

Sql Server CLR関数を使用すると、プロセスが非常に難しくなります。これを可能な限り自動化する必要があると思います。

また、関数を更新するたびにDBAの同意を得る必要がある場合もあります。

ただし、「コードをデータに取り込む」と言った後でも、非常に優れたオプションになる場合があります。

于 2010-09-30T15:13:51.903 に答える
0

SQLServerを自分でインストールし、オンプレミスのように個別にライセンスを取得すると、SQLServer-as-a-serviceを含めるための段階的な追加料金でマネージドSQLServer環境オプションを使用するのではなく、Azureでそれを実行できる場合があります。ただし、データベースのサポートに関する他のすべてのインフラストラクチャを構成するのはあなた次第です(バックアップ、HAなど)。

于 2015-10-03T19:21:44.177 に答える