使用點陣圖索引和星形轉換優化OLAP查詢
在OLAP系統中,往往有一個事實表連線多個維度表的查詢,在以下案例中,sales是事實表,products/promotions/channels/countries是維度表。
通常在事實表上的連線列建立外來鍵,連上維度表的主鍵。
見以下SQL語句:
如果沒有任何優化設計,將對事實表sales_A進行全表掃描,以下是執行計劃
通常在事實表上的外來鍵列上,值的離散度較低,適合建立點陣圖索引。以下是建立點陣圖索引語句:
如果僅僅是到這裡,執行計劃依然同上,新建的點陣圖索引未被採用。
我們需要啟用“星形轉換”。
星形轉換是否啟用由引數star_transformation_enabled決定,預設是FALSE。
然後檢視執行計劃,可以看到COST明顯降低。
注意到對事實表SALES_A的訪問方式,由FULL變為了BY USER ROWID。另外,執行計劃中BITMAP CONVERSION表示星形轉換起了作用。
通常在事實表上的連線列建立外來鍵,連上維度表的主鍵。
見以下SQL語句:
點選(此處)摺疊或開啟
- select s.prod_id,s.cust_id,s.time_id,s.channel_id
-
from sales_A s, products pd, promotions pm, channels ch, countries c
where s.prod_id = pd.prod_id
and s.promo_id = pm.promo_id
and s.channel_id = ch.channel_id
and s.tax_country = c.country_iso_code;
通常在事實表上的外來鍵列上,值的離散度較低,適合建立點陣圖索引。以下是建立點陣圖索引語句:
點選(此處)摺疊或開啟
- create bitmap index sales_A_prod_bix on
- sales_A ( prod_id );
-
create bitmap index sales_A_promo_bix on
sales_A ( promo_id );create bitmap index sales_A_channel_bix on
sales_A ( channel_id );
create bitmap index SALES_COUNTRY_BIX on
sales_A ( TAX_COUNTRY );
我們需要啟用“星形轉換”。
星形轉換是否啟用由引數star_transformation_enabled決定,預設是FALSE。
點選(此處)摺疊或開啟
- alter system set star_transformation_enabled=TRUE;
注意到對事實表SALES_A的訪問方式,由FULL變為了BY USER ROWID。另外,執行計劃中BITMAP CONVERSION表示星形轉換起了作用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-2083171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用點陣圖連線索引優化OLAP查詢索引優化
- 使用點陣圖連線索引最佳化OLAP查詢索引
- MySQL-效能優化-索引和查詢優化MySql優化索引
- mysql效能優化-慢查詢分析、優化索引和配置MySql優化索引
- MySQL索引與查詢優化MySql索引優化
- Star Transformation(星形轉換)ORM
- 查詢中讓優化器使用複合索引優化索引
- 通過點陣圖篩選優化資料倉儲查詢效能優化
- MySQL 索引及查詢優化總結MySql索引優化
- MySQL索引原理及慢查詢優化MySql索引優化
- 【oracle 效能優化】組合索引查詢。Oracle優化索引
- MongoDB範圍查詢的索引優化MongoDB索引優化
- Oracle索引——點陣圖索引Oracle索引
- 點陣圖索引(Bitmap Index)——從B*樹索引到點陣圖索引索引Index
- APP查詢圖片優化APP優化
- MySQL基本知識點梳理和查詢優化MySql優化
- 【索引】oracle查詢使用索引和不使用索引的比較索引Oracle
- msyql千萬級別查詢優化之索引優化索引
- MS SQL SERVER索引優化相關查詢SQLServer索引優化
- 《MySQL慢查詢優化》之SQL語句及索引優化MySql優化索引
- 點陣圖索引.sql索引SQL
- 使用點陣圖選單項——建立點陣圖 (轉)
- 點陣圖索引(Bitmap Index)——索引共用索引Index
- 三高Mysql - Mysql索引和查詢優化(偏理論部分)MySql索引優化
- 三高Mysql - Mysql索引和查詢優化(偏實戰部分)MySql索引優化
- 點陣圖索引(Bitmap Index)——點陣圖索引與資料DML鎖定索引Index
- 查詢轉換
- Oracle-點陣圖索引Oracle索引
- B樹索引和點陣圖索引的結構介紹索引
- MySQL——優化巢狀查詢和分頁查詢MySql優化巢狀
- mysql索引的使用和優化MySql索引優化
- 開發人員不得不知的MySQL索引和查詢優化MySql索引優化
- 【基礎知識】索引--點陣圖索引索引
- 使用Elasticsearch的動態索引和索引優化Elasticsearch索引優化
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- 查詢優化優化
- MySQL: 使用explain 優化查詢效能MySqlAI優化
- oracle 點陣圖索引(bitmap index)Oracle索引Index