亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中物化視圖的快速刷新測試與物化視圖日志分析

發布時間:2021-11-18 15:46:41 來源:億速云 閱讀:799 作者:iii 欄目:MySQL數據庫

本篇內容介紹了“mysql中物化視圖的快速刷新測試與物化視圖日志分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、物化視圖日志的介紹

1.1 物化視圖快速刷新的原理:要先了解完全刷新的原理是先把物化視圖的數據全部刪除,然后再把基表的數據插入到物化視圖中;但是當數據達到百萬級別的數據時,如果源表更新了一條數據,完全刷新就得刪除物化視圖的所有數據再進行插入;

而快速刷新,會保留物化視圖的數據,然后基表的所有數據的變更記錄到物化視圖日志中。這樣如果源表數據還是百萬級別,且這個時候更新了一條數據,物化視圖刷新的過程中根據物化視圖的日志,只要更新修改的那條特定記錄,便可達到快速刷新的作用;

簡單來講,物化視圖日志就是一個數據庫引擎自動偉華的表,用來跟蹤基表發生的變更;

1.2 物化視圖的刷新方式:我們知道如果需要進行快速刷新,則需要建立物化視圖日志。Oracle物化視圖日志根據不同物化視圖的快速刷新的需要,可以建立為ROWID或PRIMARY KEY類型的。還可以選擇是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。

二、物化視圖快速刷新的測試

2.1 創建一個基表

CREATE TABLE T_JOHN

(

  NAME          VARCHAR2(20 BYTE),

  SALE            VARCHAR2(20 BYTE),

)

TABLESPACE USERS

RESULT_CACHE (MODE DEFAULT)

PCTUSED    0

PCTFREE    10

INITRANS   1

MAXTRANS   255

STORAGE    (

            INITIAL          64K

            NEXT             1M

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

            FLASH_CACHE      DEFAULT

            CELL_FLASH_CACHE DEFAULT

           )

LOGGING

NOCOMPRESS

NOCACHE

NOPARALLEL

MONITORING;

2.2 創建物化視圖MV_JOHN

CREATE MATERIALIZED VIEW MV_JOHN (NAME,SALE)

TABLESPACE USERS

PCTUSED    0

PCTFREE    10

INITRANS   2

MAXTRANS   255

STORAGE    (

            INITIAL          64K

            NEXT             1M

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

            FLASH_CACHE      DEFAULT

            CELL_FLASH_CACHE DEFAULT

           )

NOCACHE

LOGGING

NOCOMPRESS

NOPARALLEL

BUILD IMMEDIATE

USING INDEX

            TABLESPACE USERS

            PCTFREE    10

            INITRANS   2

            MAXTRANS   255

            STORAGE    (

                        INITIAL          64K

                        NEXT             1M

                        MINEXTENTS       1

                        MAXEXTENTS       UNLIMITED

                        PCTINCREASE      0

                        BUFFER_POOL      DEFAULT

                        FLASH_CACHE      DEFAULT

                        CELL_FLASH_CACHE DEFAULT

                       )

REFRESH FAST ON DEMAND

WITH ROWID

AS

SELECT NAME,SALE

  FROM T_JOHN;

REFRESH FAST ON DEMAND:在需要要的時候,進行快速刷新;

2.3 創建物化視圖日志

CREATE MATERIALIZED VIEW LOG ON T_JOHN

TABLESPACE USERS

PCTUSED    0

PCTFREE    10

INITRANS   2

MAXTRANS   255

STORAGE    (

            INITIAL          64K

            NEXT             1M

            MINEXTENTS       1

            MAXEXTENTS       UNLIMITED

            PCTINCREASE      0

            BUFFER_POOL      DEFAULT

            FLASH_CACHE      DEFAULT

            CELL_FLASH_CACHE DEFAULT

           )

NOCACHE

LOGGING

NOPARALLEL

WITH ROWID

EXCLUDING NEW VALUES;

WITH ROWID:通過ROWID的方式,刷新物化視圖;

2.4 以上完成后,便可以在基表上面進行數據的修改;

運行手工刷新后,可以查看物化視圖的數據也更新了;

Begin

    Dbms_mView.Refresh('MV_JOHN');

End;

三、物化視圖管理

3.1 ORACLE提供了視圖USER_MVIEW_LOGS可以查看,用戶下物化視圖的刷新情況

mysql中物化視圖的快速刷新測試與物化視圖日志分析

物化視圖日志的名稱為MLOG$_后面跟基表的名稱,如果表名的長度超過20位,則只取前20位,當截短后出現名稱重復時,Oracle會自動在物化視圖日志名稱后面加上數字作為序號。

3.2 MLOG$_T_WZQ

--這是一個primarykey的物化視圖日志:

SQL> desc  MLOG$_T_WZQ

 Name                                     Null?    Type

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

 GROUP_ID                                          VARCHAR2(10)

 PARENT_GROUP_ID                                  VARCHAR2(10)

 SNAPTIME$$                                         DATE

 DMLTYPE$$                                         VARCHAR2(1)

 OLD_NEW$$                                         VARCHAR2(1)

 CHANGE_VECTOR$$                                    RAW(255)

 XID$$                                             NUMBER

相關解釋如下:

SNAPTIME$$:用于表示刷新時間。

DMLTYPE$$:用于表示DML操作類型,I表示INSERT,D表示DELETE,U表示UPDATE。
OLD_NEW$$:用于表示這個值是新值還是舊值。N(EW)表示新值,O(LD)表示舊值,U表示UPDATE操作。

CHANGE_VECTOR$$:表示修改矢量,用來表示被修改的是哪個或哪幾個字段。

mysql中物化視圖的快速刷新測試與物化視圖日志分析

 當刷新完成后MLOG$_T_WZQ相應的日志也會被清除了,因為這些日志已經沒有保存的必要了

“mysql中物化視圖的快速刷新測試與物化視圖日志分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮滨县| 鄢陵县| 通渭县| 微山县| 麻江县| 桃源县| 武城县| 化德县| 依兰县| 阳曲县| 宽城| 荔浦县| 林西县| 汶川县| 兴城市| 龙州县| 基隆市| 石台县| 保靖县| 得荣县| 沙田区| 玛纳斯县| 锡林浩特市| 宾川县| 延庆县| 庄河市| 海兴县| 正定县| 望都县| 鄂温| 九龙县| 巫山县| 文登市| 洞头县| 洮南市| 无为县| 乳源| 张家界市| 开鲁县| 桂阳县| 新和县|