2009-08-25 73 views
3

我需要從過夜批量更新的數據中提取一些管理信息(MI)。我將使用聚集函數從具有數十萬個和可能數百萬行的表中生成MI。信息將顯示在網頁上。
這裏的關鍵因素是SQL Server處理聚合函數的效率。
我面臨兩個選擇,用於生成數據:大型不經常更改的數據集上的聚合函數的性能

  1. 寫入存儲的特效/視圖,從而生成從被稱爲每次有人原始數據中的信息來訪問一個頁面
  2. 創造出每天刷新表並充當MI的高速緩存

什麼是最好的方法?

回答

4

如果數據在一天中沒有變化,請在夜間加載期間緩存這些值。它會使檢索速度更快。必要時,我是彙總表的忠實粉絲。在你的情況下,他們是必要的!

因爲您擁有SQL Server,因此您可能想要了解的一件事是Analysis Services。通過創建多維數據庫或多維數據集,這些聚合都是自動發生的,您可以深入查看數據並以思考速度查找數字,而不是編寫可捕獲所有這些數字的報告。花10分鐘和watch the intro video吧,我想你會對SSAS的力量真正感激。

+0

感謝。將看看Analysis Services。 – macleojw 2009-08-25 13:00:14

3

這聽起來像一個Analysis Services立方體實際上是最適合您的問題。可以在數據加載完成後運行多維數據集處理,以彙總數據以備後用。

但是,您也可以使用索引視圖,如果設計正確並且與NO EXPAND表提示結合使用,則可以顯着提高性能。

SQL 2005 Indexed Views

SQL 2008 Indexed Views