日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle 原理: 物化视图,快照,实体化视图。

發布時間:2024/10/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle 原理: 物化视图,快照,实体化视图。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

8i和8i前,oracle 提供了 快照 snapshot ,9i中把其改名為物化視圖,也叫實體化視圖 materialized View。

在海量數據中,如果只想查詢特定的數據,通常會select 基表或者視圖,而查詢視圖是通過基表進行查詢的。如果基表數據的數量級非常之大,那么對于只想查詢特定的數據時效率就會很不盡人意。傳統的視圖是邏輯上的。而物化視圖是存在磁盤空間里的。他是遠端數據庫在本地上的一個副本,或者用來生成數據庫表求和的匯總表。物化視圖存儲基于遠程表的數據,也可以移位快照。物化視圖可以在 基表,視圖,其他物化視圖中來建立。通常在物化視圖被稱為主表(在復制期間)或明細表(在數據倉庫中)。

想提高查詢速度,數據庫性能調整重點

1.調整SGA 和PGA

2.調整SQL語句,使用綁定變量

3.使用物化視圖

4.系統結構上要讀寫分離。用兩個數據庫讀庫和寫庫,讀庫和寫庫數據時時同步,讀庫專門用來查詢,寫庫專門用來寫入。

?

對于普通復制,本地數據庫的物化視圖只可讀.

如果要創建基于主鍵的物化視圖,則必須具有訪問主表和訪問主表的日志 和? Create Materialized View 這三個權限。

如果是創建基于Rowid的物化視圖,則需要訪問主表和? Create Materialized View 這兩個權限

查詢重寫,Enable Query Rewrite,允許對基表進行查詢時,可以直接查詢物化視圖。

物化視圖日志,如果需要快速刷新,則需要建立物化視圖日志,物化視圖日志根據不同物化視圖的快速刷新的需要,可以建立Rowid和Primary Key類型的

刷新,當基表發生了DML操作時,物化視圖采用哪種方式和基表進行同步,模式有兩種On Demand(用戶需要時刷新,缺省值)和On Commit(DML提交時刷新) , 方法有四種? Fast ,Complete,Force ,Never。可以通過Job定時刷新,還可以手工刷新

例如

在遠端數據庫中創建一個有主鍵的表

-- Create table create table STUDENT (sno NUMBER(6) not null,sname VARCHAR2(10),deptno CHAR(3) ) tablespace SYSTEMpctfree 10pctused 40initrans 1maxtrans 255storage(initial 64Knext 1Mminextents 1maxextents unlimited); -- Create/Recreate primary, unique and foreign key constraints alter table STUDENTadd primary key (SNO)using index tablespace SYSTEMpctfree 10initrans 2maxtrans 255storage(initial 64Knext 1Mminextents 1maxextents unlimited); alter table STUDENTadd constraint DEP_DEPARTMENT foreign key (DEPTNO)references DEPARTMENT (DEPTNO);

創建物化視圖日志

create materialized view log on student;

給用戶賦予權限

grant select on student to voapd; ---允許訪問基表 grant create materialized view to voapd; ----允許創建物化視圖 grant select on MLOG$_STUDENT to voapd; ----允許訪問物化視圖日志

之后再本地數據庫voapd中創建物化視圖 (注:不要在右側添加注釋):

-- fast 的刷新方式 --- 從現在開始 --- 每隔 1/1440天即1分鐘以后 刷新 create materialized view mv_student refresh fast start with sysdate next sysdate + 1/1440 with primary key asselect * from system.student where deptno = '001';

?

此時在遠端數據庫插入一條記錄,過1分鐘后可以在本地數據庫中查看到信息

刪除物化視圖;

drop materialized view mv_student ;

重新創建,用任務的方式創建:

create materialized view mv_student asselect * from system.student where deptno = '001';create or replace procedure test Authid Current_User is begindbms_mview.refresh('mv_student'); end; /variable job1 number; begin dbms_job.submit(:job1,'test;',sysdate,'sysdate+1'); end; /begindbms_job.run(:job1); end; /

--------------------------

刪除表,重新建立?on commit 的物化視圖

還需要權限:

GRANT ON COMMIT REFRESH to voapd; create materialized view mv_allstudent refresh fast on commit as select * from system.student;

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Oracle 原理: 物化视图,快照,实体化视图。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。