优先级数据库大小或性能c#

本文关键字:性能 数据库 优先级 | 更新日期: 2023-09-27 18:13:43

有时我们发现自己不得不从数据库大小或性能中选择一个。

我正在做账单会计的应用程序,我在表设计中存储账单的详细信息

 BillNo ProductName  Qty Rate
 1       aaaa        1   12

我了解到将可以在运行时计算的数据存储在像Amount(Qty*Rate) , Tax(Amount*5/100)这样的数据库中是不好的。

但是在某些时候,我需要数千个条目的Total amount和Total vat,如果我首先遵循上面的方法,我需要选择Qty , Rate,然后对每一行执行乘法,然后执行加法,这肯定会很耗时。

我在想什么:-继续使用存储像

这样的数据的方法
 BillNo ProductName  Qty Rate  Tax   Amount
 1       aaaa        1   12     4      16

劣势:-

  1. 需要在数据库中存储额外的数据,这将增加一些性能开销,也为插入Tax和Amount。

优势:-

  1. 只需要从数据库中选择一个值
  2. 不需要执行乘法运算,这会提高我的性能。

在这种情况下,哪一种更有效。

上面的问题只是一个例子来解释这个情况。主要的问题是我是否去计算列或计算检索期间。如果您没有大量的记录,则检索期间的计算是好的,但它违反数据库规则。在检索期间选择计算列还是计算列取决于是否有记录。

优先级数据库大小或性能c#

我总是觉得当性能成为一个真正的问题时,你需要担心它。

我知道这是一个简单的例子,但是给定正确的索引,像SQL Server这样的RDBMS将使这样的计算变得容易。

我会把实际设计放在第一位。请确保您的设计合乎逻辑且业务正确。

您总是可以通过在表中填充不同数量的数据(从小数据集到非常大的数据集,即数百万行)并测试性能来测试该理论。

考虑使用视图,因为它有一个额外的好处,可以很容易地更改公式(例如,TAX的公式),而不需要更改应用程序中的所有语句。

在这里看到类似的需要计算列的简单乘法?