欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    物化視圖講解

    中的物化視圖首先需要創建物化視圖日志,根據用戶創建的物化視圖日志來創建物化視圖日志表,物化視圖日志表名稱為mlog$_基表名,如果表名超過20位,則只取前20位,當截斷后名字有重復則加上序列號,以便區分。

    物化視圖日志表介紹

    物化視圖日志表創建選項:

    創建物化視圖有多種選項類型,分別為 rowid , key和 id幾種類型,同時還可以指定 或明確指定列名,同時上面的幾種情況產生的物化視圖結構也各不相同。

    物化視圖日志表公共的列

    物化視圖無論哪種方式創建,都有幾個公共列,分別如下

    $:用于表示刷新時間。當基本表發生dml操作時,會記錄到物化視圖中,這個時間是4000年1月1 日0時0分(表示物化視圖未被刷新)可更新的物化視圖,如果物化視圖日志供多個物化視圖使用,則第一個物化視圖刷新后它將刷新該記錄的時間為更新為刷新時間,只有建立快速刷新的物化視圖才能使用物化日志,如果只有一個物化視圖使用它,則物化視圖刷新完后會將物化日志清除掉

    $:用于表示dml操作類型可更新的物化視圖,i表示,d表示,u表示。

    $:用于表示這個值是新值還是舊值。n(ew)表示新值,o(ld)表示舊值,u表示操作。

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

    物化視圖日志表特殊列

    如果使用with 則物化日志中包含主鍵字段

    如果使用with rowid 則物化日志中包含m_row$ 表示發生的rowid

    如過使用with id ,則物化視圖日中中會包含 $ 用來記錄每個變化對象的對象id

    如果使用了 則物化視圖中會包含$,給每個操作分配一個,保證刷新時按照順序進行刷新

    如果with后面跟了一個或多個名,則物化視圖中就會包含這些列

    創建物化視圖日志表

    1. key

    drop table ;

    TABLE

    (

    id (10) NOT NULL

    , (20)

    , (200)

    );

    alter table add key (id); --增加主鍵

    drop view log on ;

    可更新的物化視圖_更新視圖與修改視圖_更新視圖 update

    view log on with key ;

    desc mlog$;

    使用 時,還會創建一個臨時表 rupd$_基礎表

    2. rowid

    drop table ;

    TABLE

    (

    id (10) NOT NULL key

    , (20)

    , (200)

    );

    drop view log on ;

    view log on with ROWID;

    desc mlog$;

    3.

    創建類型

    drop type ;

    type as ( id (10), (20) , (200) );--創建類型

    drop table ;

    TABLE of ;

    drop view log on ;

    view log on with id;

    desc mlog$;

    4.

    更新視圖 update_更新視圖與修改視圖_可更新的物化視圖

    drop table ;

    TABLE

    (

    id (10) NOT NULL

    , (20)

    , (200)

    );

    drop view log on ;

    view log on with ;

    直接用with 會創建失敗,錯誤信息 表 '' 不包含主鍵約束條件

    view log on with (id,,) new ;

    with 就算包含字段也會創建失敗,錯誤信息 表 '' 不包含主鍵約束條件

    從上面看出 主鍵 、rowid、 id都是可以唯一標識行數據的,所有只用使用 是不能單獨使用來創建日志。

    可以使用 主鍵+ 和 rowid+

    5. 主鍵+

    alter table add key (id); --增加主鍵

    drop view log on ;

    view log on with key, ;

    desc mlog$;

    drop view log on ;

    將表的全部字段都記錄進去,這里 一定不要把主鍵字段名在寫入了,寫入會報錯

    view log on with key, (,) new ;

    desc mlog$;

    6.rowid+

    drop table ;

    TABLE

    可更新的物化視圖_更新視圖與修改視圖_更新視圖 update

    (

    id (10) NOT NULL

    , (20)

    , (200)

    );

    drop view log on ;

    view log on with rowid,;

    desc mlog$;

    全部數據都加入日志表

    drop view log on ;

    view log on with rowid,(id,,) new ;

    desc mlog$;

    操作基本表查看日志表

    基礎表:,,,(rowid+)

    日志表:mlog$,mlog$,mlog$,mlog$

    1.新增

    into (1, 'a', '1a');

    into (1, 'a', '1a');

    into (1, 'a', '1a');

    into (1, 'a', '1a');

    ;

    2.修改

    set = 'c' , ='cu' where id = 1;

    set = 'c' , ='cu' where id = 1;

    set = 'c' , ='cu' where id = 1;

    set = 'c' , ='cu' where id = 1;

    更新視圖 update_可更新的物化視圖_更新視圖與修改視圖

    ;

    3.刪除

    ;

    ;

    ;

    ;

    ;

    *from mlog$;

    *from mlog$;

    *from mlog$;

    *from mlog$ ;

    物化視圖

    view []

    build [|]

    [fast||force]

    [

    on [|] |

    start with () next ()

    ]

    [ | ] query

    as

    {創建物化視圖用的查詢語句}

    build [|]: 創建方式 默認 立即產生數據 根據需要產生數據

    [fast||force]: 刷新方式 fast:增量刷新 :全部刷新 forc:這個是默認 刷新方式,當數據可以使用fast時候就使用fast,否則使用模式

    更新視圖與修改視圖_可更新的物化視圖_更新視圖 update

    on [|] :視圖數據刷新時間 事務提交時刷新 在用戶需要刷新時候刷新,這就要求用戶自己動手去刷新,或者定時job

    start with () next (): 從指定時間開始每隔一段時間(由next指定)就刷新一次

    [ | ] query : 查詢重寫,當對物化視圖的基表進行查詢時候,通過判斷分析是否能通過物化視圖來得到結果,如果可以則避免重新聚集 或其他操作,默認是的

    使用主鍵 key 的物化日志表,只能創建單表查詢的物化視圖

    view fast on as

    * from ;

    *from ;

    如果我們將單表查詢修改成匯總類的如下

    view fast as

    , count(*) from group by ;

    則報錯誤如下 RA-12032: 不能使用 ""."" 上實體化視圖日志中的 rowid 列

    我們需要使用rowid的日志方式才能使用group 匯總類的物化視圖,我們使用來試下

    使用rowid物化日志來創建帶有匯總的物化視圖

    drop view ;

    view fast as

    , count(*) from group by ;

    錯誤報告 -ORA-32401: ""."" 上的實體化視圖日志沒有新值

    alter view log on add new ;

    view fast as

    , count(*) from group by ;

    還是報錯,報錯信息如下

    ORA-12033: 不能使用 ""."" 上實體化視圖日志中的過濾器列,我們需要添加列

    alter view log on add()

    view fast as

    , count(*) from group by ;

    現在可以成功的創建物化視圖了

    rowid+ 模式日志也可以創建聚合類物化視圖

    view fast as

    , count(*) from group by ;

    可以直接創建成功

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有