Oracle筆記之四(Oracle中物化視圖的使用)

物化視圖會根據查詢的定義,將視圖查詢結果存到某個真實的表中,當重物化視圖中查詢數據的時候,Oracle不會再去搜索具體的基表,這會大大的提高效率,先說說創建物化視圖的語法
            

create  materialized view materialized_emp_dept as


創建物化視圖,需要有 create materialized view 的權限,我是以scott的身份登錄的,所以從新用SYS登錄
執行
grant create materialized view to scott;

然後創建物化視圖

create  materialized view materialized_emp_dept as
       select e.empno,e.ename,e.job,d.dname 
              from emp e left join dept d on e.deptno = d.deptno

執行查詢

select count(*) from materialized_emp_dept;

得到14條數據

現在我們往基表emp中插入一條數據再來看看
insert into emp values(9999,'Jack','Soft',7902,null,1423,132,30)

執行後基表數據已經添加一行,但物化視圖中的數據仍然爲14條

 

所以,現在必須手動去刷新物化視圖

exec dbms_mview.refresh('materialized_emp_dept');/


再查詢物化視圖後的數據變成了15條

此外,我們也可以不手動刷新
如果當基表數據更新時,自動刷新物化視圖

alter materialized view my_view refresh on commit;


當讀寫頻繁且數據量大很的時候,該方法並不可取


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章