Data Warehouse Guide閱讀筆記(八):materialized view之一
發表於: 2006.12.13 17:05
分類: DW&BI
出處: http://ningoo.itpub.net/post/2149/240472
---------------------------------------------------------------[@more@]
通常,在資料倉儲中可以透過建立摘要資訊(summary)來提升效能。這裡的摘要指的是預先對一些連線(join)和聚合(aggregation)進行計算並將結果儲存下來,後續查詢的時候可以直接利用儲存的摘要資訊來生成報表。在oracle中,可以利用物化檢視(materialized view)來建立資料倉儲中的摘要。物化檢視另外一種重要的功能是複製資料。結合oracle最佳化器的查詢重寫(query rewrite)功能,可以在不改寫應用的情況下,利用物化檢視提升系統效能。
1.建立物化檢視所需要的許可權
在自己的schema下:
create materialized view
create tabel
在其他schema下:
create any materialized view
物化檢視的擁有者必須有create table系統許可權,以及對物化檢視所引用的物件的查詢許可權
對於提交重新整理(refresh-on-commit)的物化檢視,還需要基表的on commit refresh物件許可權,或者有On commit refresh系統許可權。
如果要支援查詢重寫,還需要query rewrite或者global query rewrite許可權。
對於預定義表物化檢視(materialized view on prebuilt container),需要對預定義表有select with grant option許可權。
物化檢視建立後,oracle會自動在同一個schema下建立一個內部表和最少一個索引,有可能還會建立一個檢視。所以,還需要有建立這些物件的許可權。
2.物化檢視的重新整理方式
當基表資料變化後,物化檢視需要重新整理,以便反映基表的最新資料。一共採用三種重新整理方式:
complete
完全重新整理會先刪除物化檢視中的所有現有資料(如果基於單表的物化檢視,可能會採用truncate),然後根據定義重新生成物化檢視。
fast
快速重新整理是一種增量重新整理,只會將上次重新整理以後對基表的操作重新整理到物化檢視中。要實現快速重新整理,需要滿足快速重新整理的條件。
force
強制重新整理其實叫做智慧重新整理更合適,oracle會自動判斷是否滿足快速重新整理的條件,如果滿足,採用快速刷新方式,否則完全重新整理。
對於fast refresh,還可以指定是提交重新整理(on commit),按需重新整理(on demand),或者按計劃重新整理。
On commit方式,只要針對基表的事務提交,就重新整理對應的物化檢視,如果基表含有物件型別,則不適用該方式。採用該選擇,可能會延長事務提交的時間,因為提交需要等待重新整理完成。
on demand方式則需要呼叫dbms_mview.refresh或者dbms_mview.refresh_all來執行重新整理。預設是on demand。
另外,可以使用start with和next字句指定物化檢視按計劃重新整理
物化檢視重新整理,需要能夠唯一識別出基表資料的每一列。可以使用的包括primary key,rowid和objet_id
With primary key方式是預設和推薦使用的方式,要求基表有主鍵,且基表對應物化檢視日誌是記錄primary key的。
with rowid方式,在基表沒有可用主鍵的情況下,可以使用rowid方式。但採用rowid的物化檢視只能基於單一基表,並且不能包含以下查詢:
- distinct或者聚合
- group by或者connect by
- 子查詢
- 集合操作(比如union/union all/minus)
採用rowid方式,如果要使用fast refresh,必須先執行一次complete refresh。
with object id。如果是物件物化檢視(object materialized view),則只能採用該方式。
透過使用never refresh選項,可以阻止對物化檢視進行任何方式的重新整理。
(需要引用, 請註明出處: http://ningoo.itpub.net)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82387/viewspace-1017046/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Data Warehouse Guide閱讀筆記(七):partition tableGUIIDE筆記
- The Data Warehouse Toolkit 閱讀筆記筆記
- Data Warehouse Guide閱讀筆記(六):unique constraint & unique indexGUIIDE筆記AIIndex
- Data Warehouse Guide文件筆記(四):dimensionGUIIDE筆記
- Data Warehouse Guide文件筆記(一):Data warehouse和OLTP系統的對比GUIIDE筆記
- Data Warehourse Guide閱讀筆記(五):Bitmap join indexGUIIDE筆記Index
- Data Warehouse Guide文件筆記(三):RELY constraintsGUIIDE筆記AI
- Materialized Views in data warehouse environment (185)ZedView
- Building the Data Warehouse - Fourth Edithin - 讀書筆記UI筆記
- Materialized ViewZedView
- 閱讀筆記筆記
- 讀書筆記之一筆記
- 【閱讀筆記:字典】筆記
- gdbOF閱讀筆記筆記
- 閱讀筆記03筆記
- 閱讀筆記02筆記
- 閱讀筆記8筆記
- 閱讀筆記1筆記
- 閱讀筆記5筆記
- 閱讀筆記4筆記
- 閱讀筆記3筆記
- 閱讀筆記7筆記
- 閱讀筆記2筆記
- drop materialized view hung !!!ZedView
- JDK原始碼閱讀:Object類閱讀筆記JDK原始碼Object筆記
- 《Clean Code》閱讀筆記筆記
- Dependencies for Graphs 閱讀筆記筆記
- javascript閱讀筆記01JavaScript筆記
- #EffectiveJava筆記#閱讀心得Java筆記
- 閱讀影片方法筆記筆記
- 《快速閱讀術》讀書筆記筆記
- 20240514打卡-04構建之法閱讀筆記之一筆記
- materialized view 的總結ZedView
- about materialized view and long(turn)ZedView
- materialized view (物化檢視)ZedView
- JDK原始碼閱讀(5):HashTable類閱讀筆記JDK原始碼筆記
- JDK原始碼閱讀(4):HashMap類閱讀筆記JDK原始碼HashMap筆記
- JDK原始碼閱讀:String類閱讀筆記JDK原始碼筆記