2009-02-25 52 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或计划任务,并使用新的一天的值更新此列。

然后一切可以简单地选择此列,而不是做计算,你只需做计算,每天一次。

相关问题