优先级数据库大小或性能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
劣势:-
- 需要在数据库中存储额外的数据,这将增加一些性能开销,也为插入Tax和Amount。
优势:-
- 只需要从数据库中选择一个值
- 不需要执行乘法运算,这会提高我的性能。
在这种情况下,哪一种更有效。
上面的问题只是一个例子来解释这个情况。主要的问题是我是否去计算列或计算检索期间。如果您没有大量的记录,则检索期间的计算是好的,但它违反数据库规则。在检索期间选择计算列还是计算列取决于是否有记录。
我总是觉得当性能成为一个真正的问题时,你需要担心它。
我知道这是一个简单的例子,但是给定正确的索引,像SQL Server这样的RDBMS将使这样的计算变得容易。
我会把实际设计放在第一位。请确保您的设计合乎逻辑且业务正确。
您总是可以通过在表中填充不同数量的数据(从小数据集到非常大的数据集,即数百万行)并测试性能来测试该理论。
考虑使用视图,因为它有一个额外的好处,可以很容易地更改公式(例如,TAX的公式),而不需要更改应用程序中的所有语句。
在这里看到类似的需要计算列的简单乘法?