国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle的實體化視圖管理

2024-08-29 13:37:13
字體:
來源:轉載
供稿:網友

  1. 實體化視圖概念
  
  實體化視圖治理是用于匯總,預計算,復制或分發數據的對象, 在大型的數據庫中使用它可以提高涉及到的SUM,COUNT,AVG,MIN,MAX等的表的查詢的速度,只要在實體化視圖治理上創建了統計,查詢優化器將自動的使用實體化視圖治理,這特性被稱為QUERY REWRITE(查詢重寫).與普通的視圖不同的是實體化視圖治理存儲數據,占據數據庫的物理空間的.
  
  創建實體化視圖治理的用戶的權限必須有: CREATE MATERIALZED VIEW,CREATE TABLE,CREATE VIEW,SELECT等,假如在其他的模式中創建的話要在表上有CREATE ANY MATERIALIZED VIEW和SELECT權限.
  
  要查詢重引用別的模式中的實體化視圖治理的話,還要有引用的表的GLOBAL QUERY REWRITE OR QUERY REWRITE權限.
  
  假如計劃使用實體化視圖治理的話,要修改參數文件中加: QUERY_REWRITE_ENABLE=TRUE
  
  2. 創建實體化視圖注重事項:
  
  創建之后,是否要填寫數據
  
  多長時間刷新一次
  
  使用那種刷新類型: COMPLE(完全),FAST(快速),FORCE(強制),NEVER(從不)
  
  3. 創建實體化視圖
  
  CREATE MATERIALIZED VIEW TEST3
  PCTFREE 0 TABLESPACE MTEST
  STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0)
  BUILD DEFERRED
  REFRESH FAST ON COMMIT
  ENABLE QUERY REWRITE
  AS SELECT EMP_NO,SUM(QTY_PSC) AS QTY_PSC FROM BSEMPMS GROUP BY EMP_NO;
  
  4. 刪除實體化視圖
  
  DROP MATERIALIZED VIEW TEST3;
  
  5. 治理和評估實體化視圖的工具
  
  要運行DBMSSNAP.SQL和DBMSSUM.SQL為實體化視圖創建包DBMS_MVIEW和DBMS_OLAP
  DBMS_MVIEW用于執行治理活動的.
  DBMS_OLAP確定實體化視圖是否能提高查詢的性能.
  
  6. 刷新實體化視圖的方法
  
  EXECUTE DBMS_MVIEW.REFRESH('TEST3','C');
  
  其中TEST3為實體化視圖名稱,'C'為刷新類型中的一種.
  
  刷新類型有: C-完全刷新
  
  F-快速刷新和強制刷新
  
  EXECUTE DBMS_MVIEW.REFRESH_ALL
  
  不接受任何參數,全部刷新.
  
  7. 實體化視圖間的完整性
  
  在實體化視圖互相嵌套的時候會用不同的實體化視圖的刷新的方式和時間的不同而引起的數據的完整性的問題,對于這種情況,建議把相關聯的實體化視圖放在同一個刷新組中,協調進行刷新.
  
  DBMS_REFRESH軟件包中提供MAKE過程來創建一個刷新組.
  
  例如:
  EXECUTE DBMS_REFRESH.MAKE
  (NAME=>'TEST_GROUP',
  LIST=>'LOC_EMP,LOC_DPT',
  NEXT_DATE=>SYSDATE,
  INTERVAL=>'SYSDATE+7');
  
  上面創建一個實體化視圖刷新組TEST_GROUP,刷新周期為7天一次的.
  
  兩個實體化視圖LOC_EMP和LOC_DPT通過一個參數來傳遞給過程的.
  
  8. 向刷新組中增加刷新的實體化視圖
  
  DBMS_REFRESH.ADD
  (NAME IN VARCHAR2,
  LIST IN VARCHAR2,
  TAB IN DBMS_UTILITY.UNCLARRAY,
  LAX IN BOOLEAN:=FALSE);
  
  9. 向刷新組中刪除刷新的實體化視圖
  
  DBMS_REFRESH.SUBTRACT
  (NAME IN VARCHAR2,
  LIST IN VARCHAR2,
  TAB IN DBMS_UTILITY.UNCLARRAY,
  LAX IN BOOLEAN:=FALSE);
  
  10. 手工刪除一個刷新組
  
  EXECUTE DBMS_REFRESH.REFRESH('TEST_GROUP');
  也可以
  EXECUTE DBMS_REFRESH.DESTROY(NAME=>'TEST_GROUP');
  
  11. 實體化視圖的日志治理
  
  實體化視圖日志是一個表,保持對實體化視圖操作的歷史記錄.
  
  要創建實體化視圖日志必須能在表上創建AFTER ROW觸發器,必須有CREATE TRIGGER,CREATE TABLE權限
  
  例如:
  CREATE MATERIALIZED VIEW LOG ON BSEMPMS
  TABLESPACE DATA_TEST
  STORAGE(INITIAL 1M NEXT 1M PCTINCREASE 0)
  PCTFREE 5 PCTUSED 90;

  
  實體化視圖日志的PCTFREE應該很小,PCTUSED應該很大的.
  
  通過ALTER MATERIALIZED VIEW LOG命令可以修改實體化視圖日志參數.
  
  如:
  ALTER MATERIALIZED VIEW LOG BSEMPMS PCTFREE 1;
  
  要撤銷實體化視圖日志,可以用DROP MATERIALIZED VIEW LOG命令
  
  如:
  DROP MATERIALIZED VIEW LOG ON BSEMPMS;
  
  12. 清除實體化視圖日志
  
  要減少實體化視圖日志使用的空間,可用DBMS_MVIEW軟件包中的PURGE_LOG過程,PURGE_LOG有三個參數:
  
  主表名稱,NUM變量,DELETE標志
  
  NUM指最近最少刷新的實體化視圖數量
  
  例如:
  EXECUTE DBMS_MVIEW.PURGE_LOG
  (MATER=>'BSEMPMS',
  NUM=>1,
  FLAG=>'DELETE');
  
  BSEMPMS表的實體化視圖將清除實體化視圖最近最少使用的條目.
  
  要在截斷主表的時候而不丟失實體化視圖日志條目,可以用命令
  
  TRUNCATE TABLE BSEMPMS PRESERVE MATERIALIZED VIEW LOG;
  
  13. 也可以用OEM來創建和治理實體化視圖

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 姚安县| 长治县| 车险| 石台县| 镇巴县| 宁德市| 阜宁县| 西安市| 子长县| 泸定县| 定日县| 玉山县| 全州县| 措勤县| 茂名市| 台中县| 克拉玛依市| 莆田市| 庆安县| 磐安县| 四平市| 临洮县| 墨竹工卡县| 吉安县| 柏乡县| 苍山县| 三亚市| 磴口县| 敦煌市| 墨玉县| 新竹县| 右玉县| 阳山县| 乐安县| 青冈县| 池州市| 永川市| 体育| 平昌县| 新河县| 大宁县|