2009-02-25 48 views
1

我使用存儲在SQL表稱爲tb_player以下幾列:什麼是計算每天改變數值的公式的最佳方法?

出生(日期)的日期,遊戲時間(整數),版本(整數)

計算「playvalue」(整數)公式如下:

playvalue =(今天 - 出生日期)*遊戲時間*版本

我顯示高達這些記錄與在任何時候網頁的associataed playvalue 100。

我的問題是,什麼是計算該playvalue給它每天只將改變的最有效方式,由於改變(出生今天日期)?其他值(播放時間&版本)保持不變。

難道還有比爲100個記錄每個時間計算這對飛更好的辦法?如果是這樣,在存儲過程或VB.NET/C#中進行計算效率更高嗎?

+0

你是否在SQL中「訂購」這個公式? – Constantin 2009-02-25 10:16:26

回答

8

在對象上的屬性/方法,在C#/ VB.NET(.NET代碼)。

來執行這樣一個簡單的屬性是什麼相比的時間調出的進程到數據庫(在第一時間獲取行),或基於web的運輸時間的時間頁;你會從來沒有注意到它,如果只是使用它的UI顯示。此外,它在易於擴展的硬件(應用程序服務器)上,並且每天不會涉及大量更新,並且僅針對實際顯示的行執行,並且僅在您實際查詢此屬性/方法時執行。

0

您是否發現,這實際上是導致性能問題?我不認爲這會很糟糕,因爲計算是相當簡單的數學。

但是,如果你是真正關心它,我的辦法是基本建立在tb_player表「playvalue緩存」一欄。該列將爲當天的每個玩家存儲計算出的「playvalue」。設置每天午夜運行的cronjob或計劃任務,並使用新的一天的值更新此列。

然後一切可以簡單地選擇此列,而不是做計算,你只需做計算,每天一次。

相關問題