从最新历史记录表或项目行获取当前数据?

时间:2012-09-06 19:50:15

标签: sql-server performance

我必须存储历史定价数据历史列表。我使用histroy数据来查看过去28天。我从过去28天中选择最高值,然后将其与当前价值进行比较,其中差额为销售折扣。

我们的DBA表示将数据存储在一个表格中,该表格的FROM DATE和TO DATE是TO DATE为NULL将是当前价格。但是出于性能原因,他还想将当前价格存储在库存物料表中。会有触发器确保库存商品价格与价格历史数据中的最新价格相匹配。我没有设想价格变动超过10的库存项目

我不禁想到在两个地方当前的价格是一个坏主意。但是,我也喜欢从库存项目行获取当前股票价格。我们有一个sql 2000数据库。

不确定什么是最好的方法。

1 个答案:

答案 0 :(得分:0)

任何一种方法都是有效的。决定因素应该是每个解决方案的整体性能影响。

由于查看当前价格可能更频繁地发生,然后更新价格,您应该选择最大化查找性能的解决方案。

取决于最有可能是实际库存项目行中的价格的总体设计(无论如何,您可能已经获得了其他数据的那一行)。

更新另一个表中的价格的触发器只会在价格更新时执行,因此触发器的性能下降不会影响应用程序的整体性能。

此外,如果您需要经常查看过去28天的高价,那么让触发器将该值存储在您的库存项目行中可能会更好。

这确实会导致一些数据冗余,但性能优势可能是值得的。

数据完整性的关键是确保触发器正常工作。