今天一一教育网小编整理了如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间相关信息,希望在这方面能够更好的大家。
本文目录一览:

如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间
你确定你搜了么。。。
以下是物化视图的建立,注意是refresh mode是 on demand还是on commit
ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
创建物化视图时未作指定,则Oracle按ON DEMAND模式来创建。
但怎么更新?或者说物化视图的数据怎么随着基表而更新?Oracle提供了两种方式,手工刷新和自动刷新,像我们这种,在物化视图定义时,未作任何指定,那当然是默认的手工刷新了。也就是说,通过我们手工的执行某个Oracle提供的系统级存储过程或包,来保证物化视图与基表数据一致性。
所谓的自动刷新,其实也就是Oracle会建立一个job,通过这个job来调用相同的存储过程或包
CREATE MATERIALIZED VIEW mview_name
[TABLESPACE ts_name]
[PARALLEL (DEGREE n)]
[BUILD {IMMEDIATE|DEFERRED}]
[{ REFRESH {FAST|COMPLETE|FORCE}
[{ON COMMIT|ON DEMAND}]
| NEVER REFRESH } ]
[{ENABLE|DISABLE} QUERY REWRITE]
AS SELECT … FROM …
基于你说的情况,有job的定时刷新,应该是on commit的情况,或者是手动建立的job
下面给出我的测试:
create materialized view scott.MV_test_index
refresh force on commit
as
select * from scott.test_index;
SQL> select count(*) from mv_test_index;
COUNT(*)
----------
50195
SQL> delete from test_index where rownum=1;
1 row deleted.
SQL> commit;
Commit complete.
SQL> select count(*) from mv_test_index;
COUNT(*)
----------
50194
这里我们发现commit的时间会有些长,因为同时要刷新物化视图,我们这里其实是重新做了删除物化视图数据和插入新数据的操作(因为刷新的方法是complete,当然你可以选择FAST来做增量刷新,而且fast是首选),然后物化视图已经更新了。
下面是开启session sql trace的结构,你可以看到commit之后oralce所做的操作。
********************************************************************************
commit
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.11 0.23 0 0 1 0
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 0.11 0.23 0 0 1 0
Misses in library cache during parse: 0
Parsing user id: 54
********************************************************************************
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1")
FROM
(SELECT /*+ NO_PARALLEL("MV_TEST_INDEX") FULL("MV_TEST_INDEX")
NO_PARALLEL_INDEX("MV_TEST_INDEX") */ :"SYS_B_2" AS C1, :"SYS_B_3" AS C2
FROM "SCOTT"."MV_TEST_INDEX" SAMPLE BLOCK (:"SYS_B_4" , :"SYS_B_5") SEED
(:"SYS_B_6") "MV_TEST_INDEX") SAMPLESUB
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.07 0.19 44 69 0 1
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 3 0.07 0.19 44 69 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 54 (recursive depth: 2)
Rows Row Source Operation
------- ---------------------------------------------------
1 SORT AGGREGATE (cr=69 pr=44 pw=0 time=196762 us)
10624 MAT_VIEW ACCESS SAMPLE MV_TEST_INDEX (cr=69 pr=44 pw=0 time=1853189 us)
********************************************************************************
delete from "SCOTT"."MV_TEST_INDEX"
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.02 0.01 0 3 0 0
Execute 1 7.48 9.46 20 321 154984 50194
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 7.50 9.48 20 324 154984 50194
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 54 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
0 DELETE MV_TEST_INDEX (cr=371 pr=20 pw=0 time=9503556 us)
50194 MAT_VIEW ACCESS FULL MV_TEST_INDEX (cr=310 pr=20 pw=0 time=1355940 us)
********************************************************************************
INSERT /*+ */ INTO "SCOTT"."MV_TEST_INDEX"("OBJECT_ID","OBJECT_NAME") SELECT
"TEST_INDEX"."OBJECT_ID","TEST_INDEX"."OBJECT_NAME" FROM
"SCOTT"."TEST_INDEX" "TEST_INDEX"
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.01 0.01 0 0 0 0
Execute 1 5.90 12.87 0 777 103790 50193
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 2 5.91 12.88 0 777 103790 50193
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 54 (recursive depth: 1)
Rows Row Source Operation
------- ---------------------------------------------------
50193 TABLE ACCESS FULL TEST_INDEX (cr=241 pr=0 pw=0 time=602379 us)
********************************************************************************
BEGIN dbms_session.set_sql_trace(false); END;
接下来看看fast的刷新方法:
CREATE MATERIALIZED VIEW LOG ON scott.test_index; --这里我试过yantinkun的那个网页,是不能加with rowid的,会报错:ORA-23415: materialized view log for does not record the primary key
DROP materialized view log on scott.test_index;
create materialized view scott.MV_test_index
refresh fast on commit
as
select * from scott.test_index;
SQL> exec dbms_session.set_sql_trace(true);
PL/SQL procedure successfully completed.
SQL> delete from test_index where rownum=1;
1 row deleted.
SQL> commit;
Commit complete.
SQL> exec dbms_session.set_sql_trace(false);
PL/SQL procedure successfully completed.
SQL> host
这次的commit快多了,因为只是增量的刷新;
看下log中有这样一行:
DELETE FROM "SCOTT"."MV_TEST_INDEX" SNAP$
WHERE
"OBJECT_ID" = :1
只是找到了多出来的那个object的id,然后从物化视图里删掉就ok了。
可以查看物化视图的开始刷新时间,通过查看视图
select * from mlog$ where mowner='SCOTT' and MASTER='TEST_INDEX'来查找对应建立的物化视图的log,我这里查出来的是scott.MLOG$_TEST_INDEX
然后执行查询就可以看到详细的信息了:
select * from scott.MLOG$_TEST_INDEX
然后是刷新的时间,当刷新选项是commit的时候你是没法看的,只能从session的trace里面估计,
on demand话就是你自定义的job 来执行exec dbms_mview.refresh('MV_TEST_INDEX)
这个是可以看的,可以从user_jobs这个视图来看,里面有个total_time来记录job的执行总时间。
一一教育网
2022天津高考从哪一届物理化学捆绑
2024届。
新高考模式“有调整”,物理化学“捆绑”了到2024年选科的时候,是需要把物理和化学划分到一起的,现在的情况是把物理和历史进行二选一,剩下的科目自由选择。
天津市高考实行分省自主命题,由天津市教育招生考试院具体组织实施。

在新高考政策下2025年高考物化“捆绑”吗?
一一教育网(https://www.glyydyj.com)小编还为大家带来在新高考政策下2025年高考物化“捆绑”吗?的相关内容。
物理和化学不捆绑,但是有些省份为了均衡选科的人数,某些省份要求报考理学、工学、
农学、医学的
本科专业
基本都必选物理和化学。
新高考政策“3+1+2”模式。“3”即
统一高考
科目为语文、数学、外语3门;“1”和“2”为选择性考试科目,其中“1”指从物理或历史科目中选择1门首选科目,“2”指从思想政治、地理、化学、生物学中选择2门再选科目。考生总成绩由3门统一高考成绩和3门普通高中学业水平选择性考试成绩构成,满分750分。其中,3门统一高考科目使用原始成绩计入考生总成绩,每门满分150分;选择性考试中首选科目(物理或历史)使用原始成绩计入考生总成绩,每门满分100分;再选科目按等级分计入考生总成绩,每门满分100分。在招生录取方面,普通高校考试招生采取“两依据、一参考”模式,即依据全国统一高考的语文、数学、外语3门科目成绩和
高中学业水平考试
的3门选考科目成绩,参考学生
综合素质评价
择优录取。
以上就是一一教育网小编给大家带来的如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间全部内容,希望对大家有所帮助!更多相关文章关注一一教育网:
www.glyydyj.com免责声明:文章内容来自网络,如有侵权请及时联系删除。