数据库
首页 > 数据库> > 【DB笔试面试349】在Oracle数据库中,哪个后台进程刷新物化视图(materialized views)?

【DB笔试面试349】在Oracle数据库中,哪个后台进程刷新物化视图(materialized views)?

作者:互联网

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=


Q          题目

  

在Oracle数据库中,哪个后台进程刷新物化视图(materialized views)?




     
A          答案          


答案:Oracle数据库使用Job Queue进程去运行用户的Jobs,经常在批量模式下。任务是用户自定义的预订运行一次或者多次的作业。比如说,可以使用一个Job队列去安排在后台运行的一个长时间运行的更新任务。给定一个开始时间和间隔时间,任务队列进程就会去尝试在下一个间隔的时间点上面运行Job。

初始化参数JOB_QUEUE_PROCESSES指定了Job Queue线程在实例中最大的并发运行的数量。如果初始化参数JOB_QUEUE_PROCESSES被设置为0,那么协调进程(CJQn)将不会被启动。

Job运行一般由两类进程组成,参考下图:


watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

v 作业队列协调进程CJQn(Job Queue Coordinator Process),起到对作业队列的监控作用。

v 执行作业的队列进程Jnnn(Job Queue Slave Processes),由CJQN完成调度产生,并且执行相关的Job。

1.CJQ0在Oracle调度器需要的时候自动开启。调度进程定期的在JOB$表中选择事务来运行。新的事务选择按照时间排列。

2.调度进程动态的生成Jnnn去运行任务。

3.Job队列进程运行的任务由CJQ0来选择。每个Job Queue在一个时间点上面只能运行一个Job。

4.在进程完成执行单个Job后,它被分配更多的任务。如果没有任务被安排去执行,那么它们会进入沉睡状态。并且定期的苏醒去检查是否有Job。如果没有找到,那它们会进入下一个沉睡周期。

所以,刷新物化视图的后台进程是Jnnn(Job Queue Slave Processes)。


标签:views,队列,materialized,视图,Queue,Oracle,Job,进程,运行
来源: https://blog.51cto.com/lhrbest/2708399