Oracle Materialized Views Containing Joins Only

chncaesar發表於2013-12-13

介紹

只包含表連線而沒有聚合的物化檢視。與聚合類似,表連線也是相當消耗資源的操作, 將其結果預先計算並儲存於物化檢視中,可以提高SQL執行效率。

 

每一個基表(包括inline view)Rowid必須出現在物化檢視的select部分。這也是該物化檢視可以快速重新整理的必要條件之一。其他條件包括:

  • From 語句後的所有表必須建立MV log,且包含rowid
  • 不可包含group by或其他聚合函式
  • Select語句中不能包含object型別的列

 

下面是一個例子:

CREATE MATERIALIZED VIEW LOG ON sales WITH ROWID;

CREATE MATERIALIZED VIEW LOG ON times WITH ROWID;

CREATE MATERIALIZED VIEW detail_sales_mv

BUILD IMMEDIATE

REFRESH FAST ON DEMAND

ENABLE QUERY REWRITE

AS

SELECT s.ROWID sales_rid, t.ROWID times_rid, s.time_id, t.day_name, s.amount_sold, s.quantity_sold

FROM times t , sales s WHERE t.time_id = s.time_id;

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

相關文章