在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Oracle物化视图管理及重要视图怎么理解

122次阅读
没有评论

共计 4332 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要讲解了“Oracle 物化视图管理及重要视图怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Oracle 物化视图管理及重要视图怎么理解”吧!

MView 重要视图

Oracle 文档中 MView 相关视图的链接 Materialized View and Refresh Group Views。

在源数据库端的相关视图
DBA_BASE_TABLE_MVIEWS

此视图与系统视图 SYS.SLOG$ 相对应。

视图 DBA_BASE_TABLE_MVIEWS 记录了使用 MView Log 访问基表的相关刷新的信息。换句话说就是记录了使用了 MView Log 并且做过快速刷新的 MView 的信息,必须同时满足有 MView Log 以及做过快速刷新这两个条件,缺一不可。

OWNER
基表的 OWNER
MASTER
基表的名称
MVIEW_LAST_REFRESH_TIME
基于这个基表的 MView 最后的快速刷新的时间
MVIEW_ID
基于这个基表的 MView 在数据库中的 ID,这个可以和 DBA_REGISTERED_MVIEWS 关联找出相应的 MView 的名称

备注:SYS.SLOG$ 的作用

SYS.SLOG$ 记录了注册在源数据库端的能进行快速刷新的 MView 的信息。这个信息在进行快速刷新的时候会备用到,同时也会用来维护基表的 MView Log 信息。

DBA_REGISTERED_MVIEWS

此视图与系统视图 SYS.REG_SNAP$ 相对应。

视图 DBA_REGISTERED_MVIEWS 记录了所有在主站点上面注册的 MView 的相关的信息,这里保存的东西只是起提供信息性的作用。当 MView 在创建的时候 Oracle 会自动的将 MView 的信息写入到此视图中,但是也不排除会有失败的情况,要是失败了的话需要手动的使用 DBMS_MVIEW 包中的 REGISTER_MVIEW 进行注册。

详细的列描述就不列了,具体的参看文档。

备注:SYS.REG_SNAP$ 的作用

DBA_MVIEW_LOGS

此视图与系统视图 SYS.mlog$ 相对应。

此视图记录了源数据库中的所有的 MView Log 的相关信息。

详细的列描述就不列了,具体的参看文档。

在 MView 数据库端的相关视图
DBA_MVIEWS

此视图与系统视图 SYS.SNAP$ 相对应。

此视图我们在之前已经接触了很多了,视图里面保存了数据库中所有的 MView 的信息。我们进行的大部分物化视图的查询工作都要基于这个视图来进行。

详细的列描述见文档。

DBA_MVIEW_REFRESH_TIMES

此视图与系统视图 SYS.SNAP_REFTIME$ 相对应。

此视图记录了 MView 最后刷新的时间,这在我们检查 MView 是否正常的刷新过时很有用的。

详细的列描述见文档。

DBA_REFRESH 和 DBA_REFRESH_CHILDREN

这两个视图我们在之前也已经接触过了,主要是记录了刷新组相关的信息。

MView 相关包

在进行 MView 的维护的时候使用的最多的就是 DBMS_MVIEW 和 DBMS_REFRESH 这两个包了,前一个用来进行 MView 的维护,另外一个进行 MView 刷新组的维护。

相关的 Oracle 文档

DBMS_MVIES

DBMS_REFRESH

一些 MView 维护的相关问题
SNAPSHOT vs. Materialized View

SNAPSHOT == Materialized View (老版本的 Oracle 中管 MView 叫 SNAPSHOT  )

DBMS_SNAPSHOT == DBMS_MVIEW

CREATE SNAPSHOT == CREATE MATERIALIZED VIEW

清理无效的 MView Log

1. 查询 MV 表信息

SELECT * FROM DBA_BASE_TABLE_MVIEWS;

ALL_BASE_TABLE_MVIEWS: All materialized views with log(s) in the database that the user can see

2. 查询已注册的快照信息

col owner for a15
col name for a30
col snapshot_site for a15
col refresh_method for a15
select owner, name, snapshot_site, refresh_method fromdba_registered_snapshots;

3. 对比上面两个结果找出很久没有刷新的 MV ID,然后进行 UNREGISTER_MVIEW 操作

EXEC DBMS_MVIEW.UNREGISTER_MVIEW(mviewowner, mviewname, mviewsite);

mviewowner: MView 的 OWNER。

mviewname: MView 的名字。

mviewsite: 这个可以从 DBA_REGISTERED_MVIEWS 中的 MVIEW_SITE 中看到。

4. 清理 MVLOG 记录

SQL  EXEC DBMS_MVIEW.PURGE_MVIEW_FROM_LOG(MVID);

查询 MView Log 的大小

set serveroutput on
 
declare v_output number;
begin
 dbms_output.put_line(Owner                MV Table Name                            MV Log Size   
 dbms_output.put_line(——————– —————————————- ————–
 for c_cursor in (select owner, object_name from all_objects whereobject_name like  MLOG$_%) LOOP
   execute immediate  select count(*) from   || c_cursor.owner|| . || c_cursor.object_name into v_output;
   dbms_output.put_line(
       rpad(substr(c_cursor.owner,0,20),20,   )||  
       ||rpad(substr(c_cursor.object_name,7,40),40,    )
       ||   ||v_output);
 end loop;
end;
/
 
set serveroutput off

检查 MV 的刷新兼容性

— build table MV_CAPABILITIES_TABLE
SQL @?/rdbms/admin/utlxmv.sql
 
— explain mv
TRUNCATE TABLE MV_CAPABILITIES_TABLE;
EXECUTE DBMS_MVIEW.EXPLAIN_MVIEW(mv_t3
 
— Or like this
TRUNCATE TABLE MV_CAPABILITIES_TABLE;
BEGIN
 DBMS_MVIEW.EXPLAIN_MVIEW (SELECT * FROM oe.orders@orc1.world o
  WHERE EXISTS (SELECT * FROM oe.customers@orc1.world c
   WHERE o.customer_id = c.customer_id AND c.credit_limit 500)
END;
/
 
— 查看结果
COL MVOWNER FOR A10
COL MVNAME FOR A20
COL MSGTXT FOR A65
SELECT MVOWNER,MVNAME,CAPABILITY_NAME,POSSIBLE,MSGTXT FROMMV_CAPABILITIES_TABLE;

查询 MView 刷新延时

set linesize 130
column interval format 999999
column  rgroup owner  format a20
column  refresh group  format a20
column  minutes behind  format 9999.99
column  master link  format a20
column  mview owner  format a15
column next_date format a20
 
SELECT
—    int.rowner rgroup owner ,
—    int.rname refresh group ,
   mv.owner as  mview owner ,
   mv.mview_name as  mview name ,
   mv.master_link as  master link ,
   round(1440*(sysdate – mv.last_refresh_date)) as  minutes behind ,
   to_char(int.next_date,  yyyy-mm-dd hh34:mi:ss)  next date ,
   round(int.interval*1440)  interval
FROM dba_mviews mv,
(
   SELECT child.owner, child.name, child.rowner, child.rname,job.next_date, job.next_date – job.last_date as interval
   FROM dba_refresh ref, dba_refresh_children child, dba_jobs job
   WHERE ref.rname = child.rname AND ((upper(job.what) LIKE % ||ref.rname|| % )
       OR (upper(job.what) LIKE  % ||ref.rname|| % ))
) int
WHERE mv.owner = int.owner(+) AND mv.mview_name = int.name(+)
ORDER BY (sysdate – mv.last_refresh_date) * 1440 DESC, mv.owner,mv.mview_name;

感谢各位的阅读,以上就是“Oracle 物化视图管理及重要视图怎么理解”的内容了,经过本文的学习后,相信大家对 Oracle 物化视图管理及重要视图怎么理解这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计4332字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 少妇人妻无码专区视频 | 黄色在线免费网站 | 精品国产粉嫩内射白浆内射双马尾 | 久久久精品一区 | 久热中文字幕精品视频在线 | 国产精品成人影院在线观看 | 香港三级日本三级a视频 | 欧美无玛 | 精品无码中出一区二区 | 夜夜爽爽 | 久久久久久久久中文字幕 | 久久成人在线 | 日本精品一区二区三区四区 | 国产v精品成人免费视频400条 | 日本一区二区三区精品国产 | 一本大道色婷婷在线 | 国产精品亚洲专一区二区三区 | 精品高潮呻吟99av无码视频 | 一级毛片欧美大片 | 永久黄网站色视频免费看 | 久久久国产精品一区二区18禁 | 青青草原国产在线观看 | 亚洲色吧 | 久久久成人啪啪免费网站 | 亚洲av无码电影在线播放 | 久久99亚洲精品久久久久网站 | 萌白酱香蕉白丝护士服喷浆 | 玖玖国产在线观看 | 久久亚洲sm情趣捆绑调教 | 狠狠干狠狠鲁 | 国产精品久久一区一区 | 亚洲不卡视频 | 视频免费1区二区三区 | 娇妻被黑人粗大高潮白浆 | 日本三级黄视频 | 先锋影音在线资源669 | a级毛片免费完整视频 | 国产97色在线 | 日韩 | 国产熟妇高潮叫床视频播放 | 亚洲午夜天堂 | 国产精品女丝袜白丝袜 |