Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算每天改变数值的公式的最佳方法是什么?_C#_Sql_Vb.net_Stored Procedures - Fatal编程技术网

C# 计算每天改变数值的公式的最佳方法是什么?

C# 计算每天改变数值的公式的最佳方法是什么?,c#,sql,vb.net,stored-procedures,C#,Sql,Vb.net,Stored Procedures,我使用存储在名为tb_player的SQL表中的以下列: 出生日期(日期),播放次数(整数),版本(整数) 要使用以下公式计算“播放值”(整数): playvalue = (Today - Date of Birth) * Times Played * Versions 我在任何时候都会在网页上显示多达100条具有关联播放价值的记录 我的问题是,考虑到由于(今天出生日期)的变化,每天只会改变一次,计算这个游戏价值的最有效方法是什么?其他值(播放时间和版本)保持不变 对于100条记录,有没有更好

我使用存储在名为tb_player的SQL表中的以下列:

出生日期(日期)
播放次数(整数)
版本(整数)

要使用以下公式计算“播放值”(整数):

playvalue = (Today - Date of Birth) * Times Played * Versions
我在任何时候都会在网页上显示多达100条具有关联播放价值的记录

我的问题是,考虑到由于(今天出生日期)的变化,每天只会改变一次,计算这个游戏价值的最有效方法是什么?其他值(播放时间和版本)保持不变


对于100条记录,有没有更好的方法比每次在飞行中计算这个更好?如果是这样,在存储过程中还是在VB.NET/C#?

对象的属性/方法中,在C#/VB.NET(您的.NET代码)中进行计算更有效


执行这样一个简单属性的时间是nothing,与调用数据库的进程外时间(首先获取行)或网页的传输时间相比;如果只是将其用于UI显示,您将永远不会注意到它。此外,它位于易于扩展的硬件(应用程序服务器)上,不需要每天进行大量更新,并且只对实际显示的行执行,并且只有在您实际查询此属性/方法时才执行。

在对象的属性/方法中,在C#/VB.NET(您的.NET代码)中


执行这样一个简单属性的时间是nothing,与调用数据库的进程外时间(首先获取行)或网页的传输时间相比;如果只是将其用于UI显示,您将永远不会注意到它。此外,它位于易于扩展的硬件(应用程序服务器)上,不需要每天进行大量更新,并且只对实际显示的行执行,并且只有在您实际查询此属性/方法时才执行。

您是否发现这实际上导致了性能问题?我不认为这会很糟糕,因为计算是非常简单的数学

但是,如果您真的关心它,我的方法是基本上在tb_player表中设置一个“playvalue cache”列。此列将存储当天每个玩家的计算“播放值”。将cronjob或计划任务设置为每天午夜运行,并使用新的日期值更新此列


然后,其他所有内容都可以简单地选择此列而不是进行计算,并且您每天只需进行一次计算。

您是否发现这实际上导致了性能问题?我不认为这会很糟糕,因为计算是非常简单的数学

但是,如果您真的关心它,我的方法是基本上在tb_player表中设置一个“playvalue cache”列。此列将存储当天每个玩家的计算“播放值”。将cronjob或计划任务设置为每天午夜运行,并使用新的日期值更新此列

然后,其他一切都可以简单地选择此列而不是进行计算,并且您每天只需进行一次计算。

您是否在SQL中“按”此公式?您是否在SQL中“按”此公式?