我有兩個數據庫表,subscription
和transaction
,其中一個訂閱可以有很多事務。訂閱的狀態主要取決於屬於它的交易。因此,如果我想計算下一個處理日期,我會查看訂閱對象的期間字段,然後分析訂閱的交易以確定其狀態。這一切工作正常。報告一百萬行的最佳方法
我面臨的問題是該表包含超過400,000個訂閱對象和數百萬條交易記錄,因此構建訂閱的報告摘要(例如,大約十種可能的狀態中的每個狀態有多少是動態計算的)
由於所有計算每個訂閱狀態的邏輯都在c#代碼中,因此我必須使用linq-to-sql加載其所有子事務對象的訂閱對象的整個圖表。這需要相當長的時間,也許兩分鐘左右。我正在尋找緩存,但不會提供實時結果。我只是想知道是否有一個可以解決這個問題的策略,或者可能是我的數據庫上的索引,可能會加快LINQ到SQL查詢的速度。或者如果我從一開始就把它設計的很糟糕。
謝謝。
絕對!在客戶端上運行它可能永遠不會很快,並且保證效率低下。如果計算複雜,總會有pl-sql存儲過程或託管代碼存儲過程的選項。甚至可以直接在數據庫中運行C#代碼進行計算。 –