資料倉儲優化中什麼是星型轉換(Star Transformation)?
轉載:http://www.anysql.net/oracle/olap_tuning_startransformation.html
在資料倉儲中經常查詢的SQL總帶有下列特徵:
- 幾個表進行關聯
- 只有一個資料量巨大的表, 稱為事實表
- 其他的都是編碼表, 稱為維表
- 維表和事實表之間有主外來鍵關係
假設有D1(key1),D2(key2),D3(key3),D4(key)四個小的維表和一個事實表F(key1,key2,key3,key4), 那麼經常進行的查詢將是:
SELECT
D1.xxx, D2.xxx, D3.xxx, D4.xxx,
SUM(F.xxx), SUM(F.xxx)
FROM F, D1, D2, D3, D4
WHERE F.KEY1=D1.KEY1 AND F.KEY2=D2.KEY2
AND F.KEY3=D3.KEY3 AND F.KEY4=D4.KEY4
AND D1.xxx=? AND D2.xxx=?
AND D3.xxx=? AND D4.xxx=?
GROUP BY D1.xxx, D2.xxx, D3.xxx, D4.xxx
而為了提高查詢速度, 根據資料特徵, key1,key2,key3,key4這四個欄位會比較適合每個欄位上建一個點陣圖索引(Bitmap Index), 但是上面的查詢語句並不能用到點陣圖索引, 除非是進行了星型轉換, 這個轉換需要將SQL轉換成下面的格式:
SELECT
D1.xxx, D2.xxx, D3.xxx, D4.xxx,
SUM(F.xxx), SUM(F.xxx)
FROM F, D1, D2, D3, D4
WHERE F.KEY1=D1.KEY1 AND F.KEY2=D2.KEY2
AND F.KEY3=D3.KEY3 AND F.KEY4=D4.KEY4
AND D1.xxx=? AND D2.xxx=?
AND D3.xxx=? AND D4.xxx=?
AND F.KEY1 IN (SELECT D1.KEY1 FROM D1 WHERE D1.xxx=?)
AND F.KEY2 IN (SELECT D2.KEY2 FROM D2 WHERE D2.xxx=?)
AND F.KEY3 IN (SELECT D3.KEY3 FROM D3 WHERE D3.xxx=?)
AND F.KEY4 IN (SELECT D4.KEY4 FROM D4 WHERE D4.xxx=?)
GROUP BY D1.xxx, D2.xxx, D3.xxx, D4.xxx
有條件的可以試試, 使用星型轉換有三個條件:
- 事實表的每個程式碼列上有點陣圖索引
- 引數STAR_TRANSFORMATION_ENABLED的值要設為TRUE
- 必須使用CBO, 所以最好對錶進行適當的分析
應當好好地看一下沒做轉換和做了轉換之後的執行計劃的不同, 從而體會什麼是星型轉換.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-82927/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle優化器:星型轉換(Star Query Transformation )Oracle優化ORM
- Star Transformation(星形轉換)ORM
- 什麼是資料倉儲?
- 什麼是資料倉儲
- 資料庫倉庫系列:(一)什麼是資料倉儲,為什麼要資料倉儲資料庫
- 到底什麼是實時資料倉儲?
- 什麼是資料轉換?
- 資料湖是誰?那資料倉儲又算什麼?
- 資料庫與資料倉儲的區別是什麼資料庫
- 通俗易懂了解什麼是資料倉儲
- 資料倉儲效能優化技術優化
- 資料是什麼——資料的倉庫
- 資料倉儲應該用什麼方案——資料倉儲實施方案概述
- 什麼是Python型別轉換?主要包含什麼?Python型別
- 資料結構中抽象資料型別是什麼?資料結構抽象資料型別
- 資料倉儲是什麼?它有什麼用?一文帶你全瞭解
- 深入淺出資料倉儲中SQL效能優化之Hive篇SQL優化Hive
- DDD | 05-什麼是倉儲層
- 資料倉儲指南 (轉)
- 什麼是數字化轉型,如何理解數字化轉型?
- 為什麼資料和分析是數字化轉型的關鍵?
- 【轉載】把握資料倉儲中的"鍵"
- 企業為什麼要建資料倉儲?
- 資料倉儲中的分析SQL——資料倉儲手冊SQL
- bitmap join index ---資料倉儲優化方法之一Index優化
- 什麼是結構化資料?什麼是半結構化資料?
- 資料視覺化的優點是什麼(一)視覺化
- 資料視覺化的優點是什麼(二)視覺化
- 什麼是智慧倉儲?如何低成本快速打造智慧倉儲體系?
- 什麼是Transform轉換ORM
- 資料倉儲——在“啤酒與尿布”中挖掘 (轉)
- 為什麼在資料倉儲中很少使用主外來鍵約束
- 資料倉儲設計(轉)
- 小議星型轉換
- XML簡明教程(7)什麼是XML文件中的資料型別(轉)XML資料型別
- BI, 資料倉儲,ETL, 資料開發,有什麼區別
- 資料倉儲能為你當前資料庫體系的不足做些什麼? (轉)資料庫
- 資料倉儲中的概念