您好、欢迎来到现金彩票网!
当前位置:21点 > 自动任务化 >

如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控

发布时间:2019-08-09 22:45 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  推荐于2017-11-19展开全部如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间

  ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。

  创建物化视图时未作指定,则Oracle按ON DEMAND模式来创建。

  ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。

  但怎么更新?或者说物化视图的数据怎么随着基表而更新?Oracle提供了两种方式,手工刷新和自动刷新,像我们这种,在物化视图定义时,未作任何指定,那当然是默认的手工刷新了。也就是说,通过我们手工的执行某个Oracle提供的系统级存储过程或包,来保证物化视图与基表数据一致性。

  所谓的自动刷新,其实也就是Oracle会建立一个job,通过这个job来调用相同的存储过程或包

  基于你说的情况,有job的定时刷新,应该是on commit的情况,或者是手动建立的job

  这里我们发现commit的时间会有些长,因为同时要刷新物化视图,我们这里其实是重新做了删除物化视图数据和插入新数据的操作(因为刷新的方法是complete,当然你可以选择FAST来做增量刷新,而且fast是首选),然后物化视图已经更新了。

  只是找到了多出来的那个object的id,然后从物化视图里删掉就ok了。

  然后是刷新的时间,当刷新选项是commit的时候你是没法看的,只能从session的trace里面估计,

  这个是可以看的,可以从user_jobs这个视图来看,里面有个total_time来记录job的执行总时间。更多追问追答追问total_time 是记录的总时间 这个我知道 但是我要的是每一次执行的时间 或者DBA_jobs 有没有记录表 什么的 可以让我获得上一次的执行的总时间?追答额,这个我没见过,不过我有个办法,找到你写的那个job 执行的刷新物化视图的那个过程,

http://mamitamala.com/zidongrenwuhua/549.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有