私はアプリを開発中で、ページの見方を追跡する必要があります。ほとんどの人がそれをやっているのと似ています。これは、特定のページの人気度を判断するために使用される値です。SQLサーバーへの書き込みを遅らせる
私はDBに新しいビューを記録する必要があるたびに書くことは、パフォーマンスに影響を与えることを懸念しています。私はこの境界線の事前最適化を知っていますが、私は前に問題を経験しています。とにかく、その値はリアルタイムである必要はありません。それが10分ほど遅れると問題ありません。私はデータをキャッシュすることを考えていましたが、X分ごとに大きな書き込みをするのは助けになるはずです。
私はWindows Azure上で実行しているので、Appfabricキャッシュを利用できます。私の元の計画は、何らかの複合キー(PostID:UserID)を作成し、そのキーに「ページビュー」をタグ付けすることでした。 Appfabricでは、すべてのキーをタグで取得できます。したがって、私はそれらをビルドアップさせることができ、多くの小さな書き込みの代わりにテーブルに1つの一括挿入を行います。テーブルはこのように見えますが、変更が可能です。
int PageID | guid userID | DateTime ViewTimeStamp
ウェブサイトは依然としてデータベースから価値を得ることができますが、書き込みは遅れるだけでしょうか?
私は、Windows AzureのAppFabricのキャッシュは、タグベースの検索をサポートしていないことjust read、それはかなり私の考えを否定します。
私の質問は、これをどのように達成するかです。私はAzureを初めて使うので、私の選択肢が何であるか分かりません。タグベースの検索なしでキャッシュを使用する方法はありますか?これらのSQLへの書き込みを遅らせる方法に関するアドバイスを探しています。
私はページヒットを追跡しようとしていません。これはログに記録されません。ビューを定義するビジネスルールがあります。ユーザーがページにいなければならない時間、同じユーザーが最後に訪問してからの経過時間など... – Joe