2010-08-05 54 views
0

我正在一個汽車貿易網站上工作。在顯示廣告列表的頁面上,我計劃顯示不同類別的廣告數量:例如,對於位置:我將顯示「溫哥華(50),里士滿(12),薩里(20)」等內容。對於車輛製造,以下將顯示「本田(20),福特(12),大衆(24)」。拉一切從數據庫,然後計算統計?

我不確定是否應該將所有廣告從數據庫首先放入列表中,將結果的一頁綁定到gridview控件,然後使用Linq計算每個類別的統計信息。如果當然我會限制使用某種條件從數據庫中拉出的行數 - 也許將最大行數設置爲500.

我主要關心的是 - 這是否會成爲內存豬?

回答

2

對內存中的行進行計數是個壞主意。使用

SELECT COUNT() FROM... [ GROUP BY ] 

這是更有效率。

也審查可能性來緩存這些值。假設多個人同時加載你的頁面,但是汽車數量沒有變化,那麼每1分鐘更換一次 - 將緩存策略應用於超過1分鐘的過時值。

+0

考慮到OP使用的語言,我認爲你應該給出一個完整的SQL查詢而不是僞代碼。 – slebetman 2010-08-05 06:28:59

+0

如果我需要對多個組執行COUNT操作(位置,製作等等),那麼如果發出多個SELECT不會有問題?我主要關注表現。感謝您的回答! – sean717 2010-08-05 07:27:22

+0

@ sean717 - 我們有一些關於類似問題的測量,實際執行多個查詢(位置,在你的情況下做)比將所有記錄提取到客戶端更有效率,並對其進行計數。 不要忘記緩存這些結果。 – Dewfy 2010-08-05 12:08:49