背景信息
我們的應用程序讀取3個組件/寫道:OLTP與CQRS或SSIS OLAP
- ASP.NET MVC 3客戶前端網站(寫操作)
- 的Winform驗證工具(寫操作)
- 租戶的Silverlight儀表板(95%的聚合讀取5%寫操作)
(3)是可使用的一些性能改進的唯一部件。
我們的存儲是已經存儲了聚集在Silverlight應用程序消耗數據的過程是SQL Server Standard OLTP數據庫。
當使用數據庫引擎優化顧問或執行計劃,我們沒有看到任何重要的指標缺失,我們重建與SQL代理工作指標。
大部分部件都是迷你
- X =由間隔(日,周,月,年)
- Y =總(SUM,AVG,ECT)選定的時間
目前我們每個小工具返回大約14-20分。我們的儀表板最初打開10個小部件。
我們的尺寸是:租戶,存儲,(日,周,月,年)
我們的事實:已完成,不完整,贖回,得分......
我知道一個非規範化的表將刪除需要從SQL Server重新計算 商店經理,特許經營業主,企業查看數據〜50(個用戶同時使用) 每次
我會說實話,如果我們用OLAP去這將是我第一次雙手放在與它的經驗。
問題
什麼是一個豐富的報告儀表板的長期解決方案?
我會假設OLAP。如果是的話,你會如何保持最新,以接近實時的儀表板,我們今天有嗎? 在OLAP重建自身時放置維護頁面不是一種選擇。 理想情況下,我們希望逐步做到這一點,並參見Nservicebus(我們現在已經使用它)作爲一個偉大的橋樑,以更新這些非規範化視圖 。我們是否將這些非規範化視圖放在oltp中作爲另一個表或者是否有增量更新OLAP數據源的方法?
參考
http://www.udidahan.com/2009/12/09/clarified-cqrs/
http://www.udidahan.com/2011/10/02/why-you-should-be-using-cqrs-almost-everywhere%E2%80%A6/
不知道您的報表要求或遷移到SQL Server 2012的計劃,但他們將提供稱爲[columnstore索引]的令人驚歎的只讀選項索引選項(http://msdn.microsoft.com/ en-us/library/gg492088(v = sql.110).aspx)它爲聚合提供出色的性能特徵。你說你需要實時。 *每個人*都需要實時,直到他們必須開始爲此付費。一旦客戶看到實時的成本(硬件,開發,執行時間等),我經常會發現「哦,到時候已經足夠好了」 – billinkc 2012-02-20 13:41:35