すべてのユーザーに対して、アプリケーションはログインした回数やクイズで間違った回数などの統計を計算します。物事のこのアプリケーションはSQL Serverと.NET Entity Framework 6.1で動作します。計算された列、または統計を維持するためのトリガーによる列の更新
現在、統計はオンデマンドで計算されますが、ユーザーベースが拡大するにつれて、アプリケーションのレポート部分がさらに遅くなります。
計算された列(永続化されているか保持されていないか)を使用するか、トリガーを使用してこれらの値をユーザーに格納することについては不思議でした。
どうやってこれをやりますか?計算された列は実装が簡単かもしれませんが、テーブルからユーザーを読み込むたびに再計算されることになります。これは、今行っているよりもはるかに高速ではない可能性があります。計算された列にSQLクエリ全体を当てはめるので、列の永続化は適切なものではありません(SQL Serverは計算の更新方法をどのように推測しますか?)。 特定のアクションのトリガーは、私にとってより論理的なフィット感があるようです。
引数として、計算されたすべての統計値が他のテーブルの値のcount(*)
とsum(*)
であり、それ以上のものはないとします。
__how彼らは何度もログインしました__これは絶え間なく進化し続けていますが、クイズで間違っている__howの多くの回答は「クイズ」が完了した後は静的な数字に見えます。したがって、実際には2つの非常に異なる状況があり、おそらく異なるアプローチが必要になります。 – SMor
あなたのコメントをありがとう、しかし、彼らはちょうど2つのばかげた例だった。実際には、彼らはすべて常に変化する数字です。 –