Oracle優化器:星型轉換(Star Query Transformation )

shytodear發表於2015-06-05

Star query是一個事實表(fact table)和一些維度表(dimension)的join。每個維度表都跟事實表通過主外來鍵join,且每個維度表之間不join


星型模式設計的好處:

1) 提供了直接、直觀的業務實體與終端使用者schema設計的對映。

2) 對典型的star query提供了高效能的優化。

3) 通過大量的商業智慧工具的廣泛支援,可能會期望甚至要求資料倉儲架構包含維度表。

星型模式是用於簡單的資料集市和大型資料倉儲。

 


 

雪花狀模式(snowflake schema):

Snowflake schemastar schema的一種,但更復雜。它的維度資料被分到多個表而不是一個大表。更多的維度表,更多的外來鍵joins,使查詢更復雜,查詢效能下降。

Oracle建議使用star schema替代snowflake schema,除非你有別的原因。

 

 

優化Star Query

1) fact table的每個外來鍵列上建立bitmap index

2) 初始化引數STAR_TRANSFORMATION_ENABLED 應被設為TRUE,預設false

星型轉換(Star transformation)能為star query提供高效的查詢效能。


 

 

 

合適的情況下,Oracle會自動選擇star transformation技術,隱視重寫star query SQL,提高star query效率。

 

星型查詢2個基本步驟:

1) fact table中檢索出必要的結果集。(bitmap index會提高效率)

2) 結果集與維度表joins

 

 

星型轉換(bitmap index)

通過bitmap AND操作將3個維度表bitmaps為一個單獨的bitmap,然後與fact table通過bitmap indexes邏輯JOIN

SELECT ch.channel_class,

       c.cust_city,

       t.calendar_quarter_desc,

       SUM(s.amount_sold) sales_amount

  FROM sales s, times t, customers c, channels ch

 WHERE s.time_id = t.time_id

   AND s.cust_id = c.cust_id

   AND s.channel_id = ch.channel_id

   AND c.cust_state_province = 'CA'

   AND ch.channel_desc in ('Internet', 'Catalog')

   AND t.calendar_quarter_desc IN ('1999-01', '1999-02')

 GROUP BY ch.channel_class, c.cust_city, t.calendar_quarter_desc;


 

 

星型轉換(a Bitmap Join Index)

--建一個bitmap join index

CREATE BITMAP INDEX sales_c_state_bjix ON sales(customers.cust_state_province)

FROM sales, customers

WHERE sales.cust_id = customers.cust_id

LOCAL NOLOGGING COMPUTE STATISTICS;

即使用bitmap join index代替與表customerbitmap join

 

 

星型轉換的限制

1、 下面的情況不支援星型轉換

?  查詢中使用hint

?  查詢包含繫結變數

?  Fact table上的bitmap indexes太少

?  遠端fact tables

?  Anti-joined tables

?  Fact table是一個unmerged view

?  Fact table是一個partitioned view

 

2、 優化器不選擇star transformation的情況

?  表有一個好的單表訪問路徑

?  表太小不值得轉換

 

3、臨時表在下面情況下不適用star transformation

?  資料庫read-only模式

?  Star query是序列事務的一部分

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27126919/viewspace-1688494/,如需轉載,請註明出處,否則將追究法律責任。

相關文章