0

タイトルが不正確な場合は申し訳ありませんが、1行で問題を説明することはできません。

シナリオは次のとおりです。SQLServerデータベースの絶えず更新される値によって計算されたライブ統計を表示するWebサイトがあります。Webサイトは、AJAXを介して15秒ごとに統計を更新し、毎回再計算します。さて、問題は、200人を超える人がリアルタイムの統計情報を取得すると、毎分800回ごとに再計算されることです。これは、ほとんど不要です。

15秒ごとに1つの計算を実行し、ユーザーからの要求に応じてこの1つの計算をすべてのユーザーに表示することは可能ですか?

一部のユーザーは1つの方法でデータを表示することを選択できましたが、他のユーザーは別の方法でデータを表示することを選択したことに注意してください。

4

2 に答える 2

2

たくさん読んで調べた結果、XMLが必要であるという結論に達しました。

まず、XMLシートが更新されたときのタイムスタンプが必要でした。そして、それから15秒が経過した場合にのみ、ドキュメントの更新が許可されました。チェック(および許可されている場合は更新)の後、XMLはループスルーされてすべてのデータが読み取られ、ユーザーが要求した出力が作成されます。

つまり、リアルタイム統計の計算が15秒ごとに行われる場合、現在データを取得しているユーザーの数に関係なく。しかし、NONEがそれを引っ張っていた場合、それはただアイドル状態になります。

于 2012-10-31T14:13:51.660 に答える
1

SQL Server側でこれを行う必要がある場合は、計算結果を新しいテーブルに格納するストアドプロシージャを作成できます。その後、X秒ごとにテーブル内のデータを更新し、それ以外の場合はテーブルから読み取ることができます。15秒ごとに100回並行してテーブルを更新しないように、最後の更新時間を保存する場所のロックを正しく処理するようにしてください。最後の更新データを保存するためだけにテーブルを作成し、X-Lockを使用してレコードにアクセスします。更新中はロックを保持しますが、実際のデータを読み取る前にロックを解除します。


SQL Server側でこれに対処することに固執していない場合は、@ Blazemongerが提案したように、アプリサーバーにデータをキャッシュする方がよいでしょう。

于 2012-10-30T20:39:54.767 に答える