對於每一個用戶,我們的應用程序計算的一些統計數據,就像他們在多少次登陸或用了多少的答案錯了在智力競賽中,...它可以是各種東西的。該應用程序的SQL Server和.NET實體框架6.1計算列,或觸發更新列,以保持統計
上現在運行的統計數據是按需計算,但隨着用戶羣的擴大,這使得應用程序的報告部分永遠慢。
我們想知道或者使用計算列(無論是持久或不持久)或使用觸發器來將這些值存儲與用戶。
你會怎麼做呢?在我看來,計算列可能更容易實現,但每當我從表中讀取用戶時,它們都會重新計算,這可能不會比我們現在所做的更快。由於我們將整個SQL查詢放入計算列中,因此堅持列似乎並不合適(SQL Server如何推斷它應更新計算?)。 某些行爲的觸發似乎對我來說更符合邏輯。
爲了討論的方便,假設所有的計算統計count(*)
和其他表中,沒有什麼比這更有趣的值sum(*)
。
__他們多次登錄___:這是一個不斷演變的數字,而__如果他們在測驗中出錯的答案很多,似乎是「測驗」完成後的一個靜態數字。所以你真的有兩種不同的情況,可能需要不同的方法。 – SMor
嘿,謝謝你的評論,但他們只是兩個愚蠢的例子。事實上,他們都在不斷變化的數字。 –