2012-02-14 82 views
1

我一直负责设计一个页面,为sql server库存数据库生成库存/销售报告,包括以下内容:开始库存,结束日期库存,交付物品,销售物品给定日期或日期范围。日期范围linq查询效率

我最终所做的就是使用for循环遍历需要统计数据的天数范围,并保留从我的查询返回的每天统计数据的运行计数。

零件表具有一个名为quantity的字段,用于跟踪库存中每个零件的当前库存。交货表包含何时交付物品的记录以及销售表包含何时进行销售的记录。

由于某些限制,我只能通过获取当前库存数量并从中减去交付的数量并添加到该数字中,计算出某一特定商品的特定日期的结束库存量那一天。然后,我会在需要的日期范围内每天进行x次,同时保持总计的运行计数。

要获取一天的统计信息,以下查询可以充分发挥作用,但是如果在一定范围内需要统计信息,则性能会严重恶化。正如我所说我不熟悉linq,并会非常感谢任何帮助,以改善以下查询的性能。

编辑:代码被破

回答

2

以提高性能的最好方法是将所有这样的逻辑移到数据库,通过创建一个视图,例如。谈到加入和探索数据时,要比数据库更快速是非常困难的。

+0

我想我可能要去这条路线,但很想知道如果有一种方法来优化我的当前解决方案。 – 2012-02-16 14:09:51

+0

@Steve总之,没有。你正在尝试使用错误的工具来完成这项工作。 – Gent 2012-02-19 22:27:43

2

对于这种复杂的查询,LINQ根本就不是正确的工具。一个“统计”视图会给你一些容易查询你需要获得个人统计数据,然后聚合应该很容易从那里得到