当前位置: 首页 > 编程日记 > 正文

oracle schedule stop,Oracle调度Schedule特性(第八部分)-Windows和Window Groups

哈哈,关于schedule的内容还没完,本章讲Windows,通常说的Windows是指盖首富的操作系统,而此处所说的Windows,

是指SCHEDULER特性中的一个子项。在SCHEDULER中,WINDOW对应的是一个时间窗口的概念。

我们知道普通的jobs是没有运行时间管理地概念的,就是说一个job启动之后,用户只能被动地等待其执行,一直到其执行地任务完成(或DBA手动kill对应进程),

在此期间,执行的job将与其它活动的进程共同竞争当前系统中的资源。对于大型数据库系统,系统资源那可是相当宝贵的无形资产哪,

企能谁说用就用、想什么时候用就什么时候用,没点儿计划没点儿节制这还了得。你还别说,在9i之前,还真就是这么回事儿,谁想用就用,谁也管不了,

其中表示最甚的就是job。你是否想起了Job Classes,没错定义Job Classes确实可以控制job能够使用的资源,不过单单使用Job Classes并不能灵活的控制job在合适的时间使用适当的资源。

oracle 10g之后,SCHEDULER中提供了WINDOWS,事情终于得到了解决。

WINDOW 可以指定一个时间窗口,在此期间,通过与Job Classes的搭配组合,能够有效控制job执行时支配(使用)的资源。

比如说job通常是在凌晨服务器负载较低时执行,那么就可以通过WINDOW设置在此期间,允许jobs使用更多的系统资源,而到了工作时间后,

如果job仍未执行完成,为其分配另一个有限的资源,以尽可能降低job执行占用的资源对其它业务的影响。

1、创建Window

创建Window有一个专门的过程:DBMS_SCHEDULER.CREATE_WINDOW进行处理,该过程有两种调用方式

-- 基于SCHEDULE

DBMS_SCHEDULER.CREATE_WINDOW (

window_name             IN VARCHAR2,

resource_plan           IN VARCHAR2,

schedule_name           IN VARCHAR2,

duration                IN INTERVAL DAY TO SECOND,

window_priority         IN VARCHAR2                 DEFAULT "LOW",

comments                IN VARCHAR2                 DEFAULT NULL

);

-- 基于定义的调度

DBMS_SCHEDULER.CREATE_WINDOW (

window_name             IN VARCHAR2,

resource_plan           IN VARCHAR2,

start_date              IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,

repeat_interval         IN VARCHAR2,

end_date                IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,

duration                IN INTERVAL DAY TO SECOND,

window_priority         IN VARCHAR2                 DEFAULT "LOW",

comments                IN VARCHAR2                 DEFAULT NULL);

除去那些之前已经介绍的,已经认识的,看参数名就知道其所代表含义的之外,下列几个参数需要重点关注

Resource_plan    这一参数用来指定要使用的资源使用计划,当打开WINDOW时,就会自动按照指定的资源使用计划中的设置分配资源,

当WINDOW关闭时(没错,window是会关闭的,要不怎么说有效控制资源的使用情况泥),系统会自动切换回适当资源计划。

这个参数在执行过程时甚至可以指定为NULL或空值"",当设置为NULL时,就表示使用默认的资源计划,当设置为空值""时,表示禁用资源使用计划。

Duration         指定WINDOW的有效期,比如说指定为interval "5" hour就表示5个小时,该参数在执行过程时必须指定参数值,否则创建会报错。

Window_priority  该参数用来指定WINDOW的优先级。因为在相同时间只有一个WINDOW有效,因此如果在创建WINDOW时发现重叠的情况,ORACLE就需要根据这一参数指定的规则,

来确定优先级,说白了就是先把资源给谁用,这一参数有两个可选值:HIGH或LOW,默认值为LOW。

正如前面CREATE_WINDOW过程语法结构显示的那样,调用该过程也有两种方式,差异就在于是指定现有定义好的调度SCHEDULE,还是在执行过程时指定调度,

目标和实现的功能都是相同的,这里仅做示例,我们挑个最复杂的方式吧,执行过程时指定调度,执行脚本如下

begin

dbms_scheduler.create_window(window_name     => 'mywindow1',

resource_plan   => null,

start_date      => sysdate,

repeat_interval => 'FREQ=DAILY; INTERVAL=5',

duration        => interval '1' hour);

end;

查询当前拥有的WINDOW,可以通过*_SCHEDULER_WINDOWS视图(注意只有DBA和ALL,没有USER,因为所有定义的WINDOW都属于SYS用户)。

除了*_SCHEDULER_WINDOWS视图显示当前所有WINDOW外,还有*_SCHEDULER_WINDOW_DETAILS 视图,显示WINDOW的详细信息。

*_SCHEDULER_WINDOW_LOG 视图,显示WINDOW的日志,比如打开和关闭。

select window_name,resource_plan,to_char(start_date,'yyyy-mm-dd hh24:mi:ss') ,repeat_interval from DBA_SCHEDULER_WINDOWS where window_name = 'MYWINDOW1';

WINDOW_NAME     RESOURCE_PLAN                  TO_CHAR(START_DATE,'YYYY-MM-DDHH24:MI:SS')                                  REPEAT_INTERVAL

--------------- ------------------------------ --------------------------------------------------------------------------- -------------------------

MYWINDOW1                                      2018-05-15 15:12:02                                                         FREQ=DAILY; INTERVAL=5

2、管理Window

通过前面那些SCHEDULER对象的学习,相当大家已经了解了ORACLE SCHEDULER中对象的特点,对于多数对象的管理,基本都是下面这几种

(1)修改对象属性,使用SET_ATTRIBUTE过程;

begin

dbms_scheduler.set_attribute("mywindow1","start_date",sysdate+1);

end;

(2)ENABLE 对象,使用ENABLE过程;

begin

dbms_scheduler.enable("mywindow1");

end;

(3)DISABLE 对象,使用DISABLE过程;

begin

dbms_scheduler.disable("mywindow1");

end;

(4)删除对象,使用DROP_WINDOW过程;

begin

dbms_scheduler.drop_window("mywindow1");

end;

(5)除此之外呢,对于WINDOW对象来说,由于其特殊作用,又有手动打开WINDOW,使用OPEN_WINDOW过程。

注意WINDOW是依赖于其调度的,因此在手动打开WINDOW时,必须为其指定duration属性

begin

dbms_scheduler.open_window("mywindow1",interval "1" hour);

end;

(6)手动关闭WINDOW,使用CLOSE_WINDOW过程

begin

dbms_scheduler.close_window("mywindow1");

end;

关闭和打开WINDOW,都会记录日志,大家可以通过*_SCHEDULER_WINDOW_LOG视图中获取这部分信息。

3、WINDOW GROUP

除了WINDOW外,还有一个与WINDOW有关系的叫WINDOW GROUP,一个WINDOW GROUP可能包含多个WINDOW。使用WINDOW GROUP的本意是这样的,

假如说某个job执行的时间比较长,甚至全天24小时都在执行,对于这类job,单个WINDOW很难有效调整其资源占用,这时间呢,

就可以通过设置一个WINDOW GROUP,该WINDOW GROUP中包含了多个WINDOW,每个WINDOW分别负责不同时间点时的资源使用计划。

然后在创建JOB时,指定schedule_name参数为WINDOW GROUP的名称(想不到SCHEDULE_NAME还能指定为WINDOW GROUP哪,其实何止WINDOW GROUP,

还可以直接指定成WINDOW哪),这样,就可以通过很简单的方式,将job与window联系在一起了。

WINDOW GROUP 的创建和管理与前面介绍的方式极其相似

创建,使用CREATE_WINDOW_GROUP过程

删除,使用DROP_WINDOW_GROUP过程

添加WINDOW成员,使用ADD_WINDOW_GROUP_MEMBER过程

删除WINDOW成员,使用REMOVE_WINDOW_GROUP_MEMBER过程

启用,使用ENABLE过程

禁用,使用DISABLE过程

这些过程的调用方式也都非常简单,大家可以私底下做做实验。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31358702/viewspace-2154524/,如需转载,请注明出处,否则将追究法律责任。

相关文章:

CSS入门-五个简单,但有用的CSS属性

今天说的这5个CSS属性,你可能会很熟悉,但是你可能会很少会去使用.这个教程所讲得不是关于CSS3的属性,而是依旧使用CSS2属性来说明,这些属性广泛的被各种浏览器所支持:clip,min-height,white-space,cursor和display.所以不要错过这个教程,因为你会发现他们是多么的有用.1.CSS Cl…

借助线下渠道逆袭?小米的愿望恐成镜花水月!

小米5的发布,让久未有波澜的中国手机市场又泛起几点涟漪。 而在小米5发布的同时,小米销售方式的改变,也让人眼前一亮。小米,已经由最初的“反传统”,开始向“传统”靠拢了。 小米5发布会上,小米告诉大家&am…

【怎样写代码】函数式编程 -- Lambda表达式(一):引出

如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

oracle创建DBA角色命令,oracle常用DBA命令

1.查看用户拥有的数据库对象Sql代码select object_name from user_objects;2.查看约束信息Sql代码select constraint_name from user_constraints;3.查看用户所拥有的表Sql代码select table_name from user_tables;或Sql代码select *from tab;4.查看用户所拥有的视图Sql代码sel…

Ext JS Designer 1.0.5 发布

ExtJS官方Blog上发布了Ext JS Designer新版本,版本号为1.0.5,这个版本添加了不少新特性,如直接修改title,config参数搜索等等。虽然这个版本仍然不支持代码生成,不过另一则文章则让人感觉代码生成的日子也不远了。 此版…

【怎样写代码】函数式编程 -- Lambda表达式(二):C#常用委托

如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

前端设计(一)

前端设计(一)

oracle time格式化比较,ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)

ORACLE DATE和TIMESTAMP数据类型的比较(二) (转)[more]原著作者:James KmannTIMESTAMP数据的格式化显示和DATE 数据一样。注意,to_char支持date和timestamp,但是trunc却不支持TIMESTAMP数据类型。这已经清楚表明了在当两个时间的差别极度重要…

模式实例之——外观实例

场景&#xff1a;银行柜员机取钱或存钱描述&#xff1a;从银行的柜员机取了100块钱&#xff08;一&#xff09;子系统/// <summary>/// 子系统抽象/// </summary>public interface IDo{void ShowMessage(string strMemo);}&#xff08;二&#xff09;各个子系统///…

cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp

2019独角兽企业重金招聘Python工程师标准>>> cnpm install -g generator-gulp-webapp yo gulp-webapp test-gulp-webapp 转载于:https://my.oschina.net/yizhichao/blog/1189216

【怎样写代码】函数式编程 -- Lambda表达式(三):LINQ初步

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

oracle触发器初始化,oracle – 触发器无法初始化变量

我有触发审计,它存储了对任何EMP表行执行的操作.这个触发器工作正常,除了在某些情况下(很少发生,我无法确定确切的条件)它给了我Oracle错误&#xff1a;ORA-01400&#xff1a;无法插入NULL(“MY_SCHEMA”.“HIST_EMP”.“操作”)CREATE OR REPLACE TRIGGER HIST_EMP_AIUDAFTER …

翻页导航条页码计算方法

在开发搜索引擎等应用时&#xff0c;提供一个翻页导航条是必须的。我看过网上一些相关的代码&#xff0c;搞得很复杂。晕~~~ 其实其数学计算公式非常简单&#xff0c;本文提供两种最常用的算法。翻页式样式如下。每次显示10个页码&#xff0c;并提供"前十"、"后…

ArcGIS水文分析实战教程(9)雨量计算与流量统计

ArcGIS水文分析实战教程&#xff08;9&#xff09;雨量计算与流量统计 本章导读&#xff1a;降水是水文循环中重要的一环&#xff0c;降水包括雨、雪、雾、露、雹等&#xff0c;本章介绍的是降雨的环节。通过雨量站与插值的方式&#xff0c;实现雨量的空间分布就算&#xff0c;…

【怎样写代码】函数式编程 -- Lambda表达式(四):Lambda表达式与Expression树

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

matlab svr 预测,SVR 多目标预测

程序代码&#xff1a;close all;clear;clc;format compact;load i_source.mat;% 提取数据[m,n] size(B);ts B(1:180,1);tsx B(1:180,2:n);figure;plot(ts,LineWidth,2);title(点信源波达方向随时间的变化规律,FontSize,12);xlabel(时间,FontSize,12);ylabel(波达方向,FontSi…

【建模必备】遗传算法的定义与生物学基础

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

转_前端开发技术概要

原文&#xff1a;http://www.2008sc.cn/blog/article.asp?id82 1、JavaScript 中的内存泄露模式http://www.ibm.com/developerworks/cn/web/wa-memleak/index.html----------------------2、javascript中的 闭包http://www.felixwoo.com/archives/247http://www.cn-cuckoo.com…

python中的类的成员变量以及property函数

1 python类的各种变量 1.1 全局变量 在类外定义的变量。 1.2 类变量 定义在类里面&#xff0c;所有的函数外面的变量。这个变量只有一份&#xff0c;是所有的对象共有的。在类外用“类.”来引用。 1.3 实例变量 用self.xxx在类的任何函数中定义的变量就是实例变量。在类内用“s…

php http面向对象编程实例,PHP面向对象编程——PHP对象引用实例代码

/*?* WEB开发笔记 www.chhua.com 每日练习 PHP面向对象编程——PHP对象引用实例代码?*//*代码演示?* */class HelloWorld {//被引用对象?public $world;?function __construct($world){??$this->world$world;?}??function getHtml(){??????? return “Hell…

一个简单的提示效果

一个简单的效果&#xff0c;修改了三次才能达到如意的效果。看来&#xff0c;细节真的是决定成败。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns&q…

Java中使用FTPClient上传下载

转自:http://blog.csdn.net/hbcui1984/article/details/2720204 在JAVA程序中&#xff0c;经常需要和FTP打交道&#xff0c;比如向FTP服务器上传文件、下载文件&#xff0c;本文简单介绍如何利用jakarta commons中的FTPClient&#xff08;在commons-net包中&#xff09;实现上传…

【建模必备】遗传算法的基本原理与步骤(编码/解码)

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

linux中ftp用户,linux中怎么添加ftp用户

Linux下创建用户是很easy的事情了&#xff0c;只不过不经常去做这些操作&#xff0c;时间久了就容易忘记。那么linux中怎么添加ftp用户&#xff0c;下面跟着学习啦小编一起来了解一下吧。linux中怎么添加ftp用户在linux中添加ftp用&#xff0c;并设置相应的权限&#xff0c;操作…

html内通过parentNode来得到上级对象,与此对应的,还有childNodes[x]得到下级对象...

但是对于表格要注意&#xff0c;在<table>和<tr>之间还有一个<tbody>&#xff0c;即使你在构建<table>时没有使用这个<tbody> <table> <tr> <td> <input typebutton valueclick οnclickdeleteItem(this);/> </td>…

lucene查询

1.创建项目(lucene)2.创建SearchIndex类,包名(com.zhishang.lucene)package com.zhishang.lucene;import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import org.a…

【建模必备】遗传算法的基本原理与步骤(适应度函数与适应度分配)

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

linux系统中find怎么用,linux系统中‘find’的详细用法

“find”指令是linux系统下较为常用的指令&#xff0c;它常见的用法我们也需要掌握&#xff0c;下面主要是对‘find’指令的常见用法作一下总结&#xff0c;希望能够对其他人有所帮助。在linux系统下用"ls"指令查看目录如下&#xff1a;1.find指令的一般格式&#xf…

Windows环境下Unicode编程总结和将ANSI转换到Unicode 将Unicode转换到ANSI

Windows环境下Unicode编程总结 UNICODE环境设置在安装Visual Studio时&#xff0c;在选择VC时需要加入unicode选项&#xff0c;保证相关的库文件可以拷贝到system32下。 UNICODE编译设置&#xff1a;C/C, Preprocessor difinitions 去除_MBCS&#xff0c;加_UNICODE,UNICODE在P…

【建模必备】遗传算法的基本原理与步骤(选择)

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.