クレジット付きのアカウント (約 200.000 レコード) を格納する SQL Server データベースと、トランザクション (約 20.000.000) を格納する別のテーブルがあります。
トランザクションがデータベースに追加されるたびに、クレジットが更新されます。
私がする必要があるのは、(Web サービスを使用して) クライアント プログラムを更新してクレジットをローカルに保存することです。新しいトランザクションがサーバーに追加されるたびに、クライアントにも送信されます (デルタのタイムスタンプを使用します)。私の主な問題は、クライアントの最初のデータ セットを作成することです。すべてのアカウントのリストとトランザクション テーブルの最後のタイムスタンプを提供する必要があります。
これは、このリストとスナップショット内の最後のタイムスタンプを作成する必要があることを意味します。これは、このリストの作成中に更新を行うと、クレジットの合計と最後のトランザクションのタイムスタンプが一致しないことを意味するためです。
設定を調査ALLOW_SNAPSHOT_ISOLATION
し、トランザクションでスナップショット分離を使用しSqlCommand
ましたが、これを読んだところ、パフォーマンスが大幅に低下します。これは本当ですか、この問題は他の手段で解決できますか?