行固有の SQL キャッシュ依存関係を作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/940418

質問

.net C# アプリケーションでデータ キャッシュを使用したいと考えています。これまでのところ、データ キャッシュを追加し、特定のテーブルに SQL キャッシュの依存関係を追加しました。しかし、それだけでは十分ではありません。これらのテーブルは頻繁に更新されますが、キャッシュされたオブジェクトの多くには関係ありません。これにより、データ キャッシュは頻繁にフラッシュされるため、ほとんど役に立たなくなります。各オブジェクトの特定の行に SQL キャッシュの依存関係を実装したいと考えています。どうやってやるの?

役に立ちましたか?

解決

SqlDependency がどのように機能するかを理解する必要があります。あなた 結果セットをサブスクライブし、その結果セットが変更されたときに通知を受け取る. 。に準拠している限り、あらゆる種類の結果セット、つまりあらゆる種類のクエリをサブスクライブできます。 サポートされるステートメントの制限. 。テーブルであってもビューであっても、実際には違いはありません。

したがって、技術的には、その行に固有のクエリを送信することで、特定の通知をサブスクライブできます。ハードコードされた WHERE 句を使用します。テーブル全体を取得してメモリにキャッシュするのではなく、行ごとに必要なデータのみを取得してキャッシュするようにコードを変更する必要があります。少なくとも、これらのテーブルのサイズについて懸念がある場合は、とにかくそうする必要があります。テーブル全体のキャッシュは、変更の頻度が低い、またはまったく変更されないカタログおよび参照データに対してのみ実行する必要があります。

データのパーティションを取得してキャッシュすることも選択できます。キーの個々の範囲 (たとえば、「A」と「D」、「E」と「H」の間など) を指定し、その特定のデータ パーティションに関する通知を受け取るようにサブスクライブします。

あなたがしたい場合は SqlDependency がどのように機能するかを理解する 私のブログにはそれを取り上げた記事がいくつかあります。 SqlDependency の一般的なプログラミングの落とし穴 そして SqlDependency に関するデプロイメントの問題.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top