Query优化实践-Aggregates的使用

554557_201004071545551.gif

1. Aggregate被成為“窮人”的BIA,所以作用可見一斑
2. 哪么什麽時候該用Aggregate呢,或者說什麽時候是使用Aggregate才能發揮作用呢?
3. 這裡有一個標準就是 Aggregate Ratio > 10 並且 Percentage DB Time > 30%
4. 上面我用A-E標注了5列,通過【D / E】兩列可以計算出Aggregate Ratio
                                               通過【K/(I+J+K)】三列可以計算出DB Time
5. 通過以上的計算公式,我們看到第一行的兩個值都是大大符合可以使用Aggregate獲得性能提升的數值
6. 從第二行開始,C列顯示的是獲取的Aggregate 編號,所以我們看到數據庫查詢的行數(D列)大大減少了,而E列是顯示結果,所以行數一直。3-5行我是同一天取得數據,所以行數完全一樣。
7. 對比K列大家可以看到DB的時間消耗是幾個數量級的提高
8. 從第3行開始,我對Query做了微調,雖然系統速度有所提升,但是已經接近九牛一毛的地步了,所以可以收手了。

554557_201004071534551.gif

 講到做Aggregate,那么我就順便分享一下,如果去做一個Aggregate。 其實做Aggregate方法很多,比如如果熟悉Cube的結構,大可直接手工抓取Characteristic。 如果不是很熟悉,那么可以通過Propose From Query(這次我就是這樣建立SD的Aggregate的),當然通過Propose From BW Statistic的方法是可以獲得更佳性能的Aggregate的,因為之前沒有啟用這個Cube的分析,所以無法用這個方式。
      
        上圖我標注了幾列是我們要重點關注的。

       A列需要說明的是分別放了哪些欄位,越普遍越好,層級越高越好。 純粹為某個Query做的Aggregate是不被推崇的,真正的Aggregate应该是大众情人 ,就是很多Query都可以从中受益。

        B列会对当前Aggregate进行评级,就是目前Aggregate的优劣程度,加号越多说明它越优秀,注意,它不是一个单纯某个值就可以影响的,因为它是综合分,包括基本要求,使用程度等。

       C列是Aggregate的数据量,就是目前存在Aggregate中的数量。 这个多少不能说明什么问题,需要相对而言。

      D列正是这个相对数,它是Cube总数量/ Aggregate总数量得出的值,理论上讲,如果不是大于10,那么就要考虑Aggregate做的是否够犀利。

fj.pngQE2.GIF

fj.pngQ3.GIF

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/554557/viewspace-631522/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/554557/viewspace-631522/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值