2012-02-14 63 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根本就不是正確的工具。一個「統計」視圖會給你一些容易查詢你需要獲得個人統計數據,然後聚合應該很容易從那裏得到