0
使用:SQL Server 2008中,實體框架表中的SQL SUM多列 - 性能
我在一個表中某一日期/時間範圍求和列。該表是直接的:
DataId bigint IDENTITY(1,1) NOT NULL PRIMARY KEY,
DateCollected datetime NOT NULL,
Length int NULL,
Width int NULL,
-- etc... (several more measurement variables)
一旦我有日期/時間範圍,我使用LINQ到EF得到查詢回來
var query = _context.Data.Where(d =>
(d.DateCollected > df &&
d.DateCollected < dt))
我然後使用構造我的數據結構在
DataRowSum row = new DataRowSum
{
Length_Sum = query.Sum(d => d.Length.HasValue ? (long)d.Length.Value : 0),
Width_Sum = query.Sum(d => d.Width.HasValue ? (long)d.Width.Value : 0),
// etc... (sum up the rest of the measurement variables)
}
的數據元素我感興趣的總和雖然這個工作,它會導致很多DB往返,是相當緩慢的。有一個更好的方法嗎?如果它意味着在存儲過程中執行它,那對我來說沒問題。我只需要獲得更好的性能,因爲我們只會添加更多的測量變量,並且性能問題會變得更糟。
謝謝@Jasmine。我猜測SP路線是最好的選擇。 SQL中的分組是如何進入混合的? – 2011-02-01 20:23:22