データベース (SQL Server 2008) のテーブルの 1 つに新しいレコードが追加されたときに、ソフトウェア (C#、.NET 3.5) のユーザー (約 100 クライアント) に通知する必要があります。私が正しく理解している場合、そのような操作はキャッシュの無効化と見なされるはずです。これはまさにそのSqlDependencyためのものです。間違っている場合は、これを修正してください。
そのために、私は2つのオプションを見ることができます:
SqlDependencyこれにより、実質的にリアルタイムの通知を受け取ることができます。- タイマーでテーブルをチェックしています。
しかし、私はこれまで使用SqlDependencyしたことがなく、実際にどれほど信頼できるのかわかりませんか? つまり、アプリケーションSqlDependency.Start()を 1 日の始まりだけに実行させて、10 時間何があっても通知をリッスンできるようにすることはできますか? もちろん、サービス クエリの通知に正しく対応しなければならないことは理解しています。また、データベースのパフォーマンスの観点から、タイマーによるクエリと比較して、そうする方が本当に良いのでしょうか? 実際にデータベースに大きな違いはありますか?
SqlDependencyすべてのユーザーが接続を開き、5 分ごとに同じデータベース内の同じテーブルをクエリすることが最善のアイデアであるかどうかわからないため、主に使用を検討しています。