当前位置: 首页 > news >正文

做网站常州阿里巴巴国际站运营培训

做网站常州,阿里巴巴国际站运营培训,网页设计与制作需求书,北京网站建设 优化SQL SERVER作业的计划#xff08;Schedules#xff09;#xff0c;如果你没仔细研究过或没有应用一些复杂的计划#xff08;Schedules#xff09;#xff0c;那么你觉得SQL SERVER作业的计划(Schedules)非常好用#xff0c;也没啥问题#xff0c;但是我要告诉你一个“残…    SQL SERVER作业的计划Schedules如果你没仔细研究过或没有应用一些复杂的计划Schedules那么你觉得SQL SERVER作业的计划(Schedules)非常好用也没啥问题但是我要告诉你一个“残酷”的真相相比Linux系统的CrontabSQL SERVER作业的计划其实是一个二等残废很多功能要实行起来真的是让人头疼 如果你自认为非常了解作业的配置不要想当然实践验证保证会让你大吃一惊那么接下来先看看几个问题 1如果你要配置作业在每个小时的第20分钟执行例如1:20、2:20、3:20........执行你怎么配置 2在计划Schedules里面如果执行间隔为“小时”那么取值必须为整数吗 可以为2.5个小时吗 3在计划Schedules里面如果我要设置执行间隔为90分钟计划这样能行吗 4如果我想在计划Schedules)外多执行一次作业如何执行 执行了后是否影响作业的计划Schedules 5 修改系统时间是否会影响作业的Schedule   1如果你要配置作业在每个小时的第20分钟执行例如1:20、2:20、3:20........执行你怎么配置 对于问题1这种类似的问题如果你遇到过而且解决过这类问题那么其实很简单你只需要设置开始时间为0:20即可否则无法实现。至于SQL SERVER为什么要这么蛋疼的设置应该是执行间隔有一个参照时间点第一次执行的时间点你设置开始开始时间为0:20,即表示这个时间点作为第一次执行的参照点。     2在计划Schedules里面如果执行间隔为“小时”那么取值必须为整数吗 可以为2.5个小时吗 关于问题2答案是执行间隔是不能设成小数的只能为整数只能为123。。。。如果你将其值设置为一个小数则当你点击确定按钮后它会自动四舍五入变成一个整数例如你输入1.3 你点击确定后再打开你会发现其值变为1了如果是1.6则会变成2不信的话你可以试试。对于秒、分钟都是如此。为什么如此呢答案在于系统表msdb.dbo.sysschedules不明白可以看文章最后。   3在计划Schedules里面如果我要设置执行间隔为90分钟计划这样能行吗 如果没有实践过的人肯定会信誓旦旦的说那肯定可以啊。答案是设置执行间隔不能超过61否则当你点击确认的时候系统自动会将其设为60至于原因我暂时没有想明白微软这个限定感觉真蛋疼。如果真有需求需要90分钟执行一次那怎么办 纠结了把。 方法1 将作业J拆分成两个一模一样的作业J1 和J2然后设置其Schedules为3小时执行一次两个作业错开执行刚好能满足业务需求。不过想想都觉得麻烦   方法2 作业Schedule执行时间间隔90分钟的实现方式是通过下面方式实现的其实是将Schedule时间设为30分钟执行一次然后再代码里面按其规律达到90分钟才真正执行业务逻辑SQL代码。 2.1 从0:00服务器时间开始作业Schedule的频率为30分钟一次实际上只需要执行下面时间点实际执行时间90分钟按规律可以分成两种             整点执行的0:00 1:00 2:00 3:00….. 只有当Hour %3 0 时才执行存储过程。             非整点执行的0:30 1:30 2:30 ……...... 只有当Hour % 3 1时才执行存储过程。 2.2 从030服务器时间开始作业Schedule的频率为30分钟一次实际上只需要执行下面时间点按规律也可以分成两种。             整点执行的0:00 1:00 2:00 3:00….. 只有当Hour %3 2 时才执行存储过程。             非整点执行的0:30 1:30 2:30 ……....... 只有当Hour % 3 0时才执行存储过程。   DECLARE Hours INT;DECLARE Minute INT;SELECT Hours CAST(SUBSTRING(CONVERT(VARCHAR(16), GETDATE(), 120),11,3) AS INT);SELECT MinuteCAST(SUBSTRING(CONVERT(VARCHAR(16), GETDATE(), 120),15,2) AS INT);IF Minute 30 AND Hours%3 0BEGIN INSERT INTO BI_JOB_LOG --暂时记录执行时间SELECT GETDATE();--执行业务逻辑代码 ...........................END;IF Minute 0 AND Hours%32BEGININSERT INTO BI_JOB_LOGSELECT GETDATE();--执行业务逻辑代码 ...........................END;     4如果我想在计划Schedules)外多执行一次作业如何执行 执行了后是否影响作业的计划Schedules 如下图所示我建立一个测试作业test每隔13分钟执行一次在2157 21:58我分别手动执行了该作业两次但是丝毫不影响该作业的调度计划。在22:06分钟还是准时执行了。 要查看作业下次执行时间可以通过SELECT * FROM msdb.dbo.sysjobschedules 来查看。   5 修改系统时间是否会影响作业的Schedule   答案是会影响一般要么重建该作业的调度计划或禁用作业的调度再启用该调度来解决。有兴趣的可以自己试验一下这里不做过多介绍。 SQL SERVER数据库作业的 Schedule 信息一般位于表 msdb.dbo.sysschedules如下所示 包含有关 SQL Server 代理作业计划的信息。此表存储在 msdb 数据库中。其实看其参数的数据类型你就知道第二个问题的答案了。呵呵 列名 数据类型 说明 schedule_id int SQL Server 代理作业计划 ID。 schedule_uid uniqueidentifier 作业计划的唯一标识符。此值用于标识分布式作业的计划。 originating_server_id int 作为作业计划来源的主服务器 ID。 name sysname (nvarchar(128)) 作业计划的用户定义名称。该名称在作业中必须唯一。 owner_sid varbinary(85) 拥有作业计划的用户或用户组的 Microsoft Windows security_identifier。 enabled int 作业计划的状态 0 未启用。 1 启用。 如果未启用计划则不会运行该计划中的任何作业。 freq_type int 此计划中作业运行的频率。 1 只运行一次 4 每天 8 每周 16 每月 32 每月与 freq_interval 有关 64 在 SQL Server 代理服务启动时运行 128 在计算机空闲时运行 freq_interval int 执行作业的间隔天数。该值取決于 freq_type 的值。默认值为 0表示不使用 freq_interval。 freq_type 的值 对 freq_interval 的影响 1一次 不使用 freq_interval (0) 4每天 每 freq_interval 天 8每周 freq_interval 为下列一个或多个值 1 星期日 2 星期一 4 星期二 8 星期三 16 星期四 32 星期五 64 星期六 16每月 每月的 freq_interval 日 32与“每月”选项相关 freq_interval 为下列值之一 1 星期日 2 星期一 3 星期二 4 星期三 5 星期四 6 星期五 7 星期六 8 日 9 工作日 10 休息日 64 在 SQL Server 代理服务启动时开始 不使用 freq_interval (0) 128在计算机空闲时运行 不使用 freq_interval (0) freq_subday_type int freq_subday_interval 的单位。可以是下列值之一 值 说明单位 1 在指定的时间 2 秒 4 分钟 8 小时 freq_subday_interval int 在每次执行作业之间发生的 freq_subday_type 的周期数。 freq_relative_interval int 如果 freq_interval 为 32与“每月”选项相关则为每月中 freq_interval 发生的时间。可以是下列值之一 0 不使用 freq_relative_interval 1 第一次 2 第二次 4 第三次 8 第四次 16 最后一次 freq_recurrence_ factor int 已计划执行的作业之间的周数或月数。仅当 freq_type 为 8、16 或 32 时才使用 freq_recurrence_factor。如果此列包含 0则不使用 freq_recurrence_factor。 active_start_date int 可以开始执行作业的日期。日期格式为 YYYYMMDD。NULL 表示当天的日期。 active_end_date int 可以停止执行作业的日期。日期格式为 YYYYMMDD。 active_start_time int 在 active_start_date 和 active_end_date 之间的任意日期开始执行作业的时间。时间格式为 HHMMSS采用 24 小时制。 active_end_time int 在 active_start_date 和 active_end_date 之间的任意日期停止执行作业的时间。时间格式为 HHMMSS采用 24 小时制。 date_created datetime 创建计划的日期和时间。 date_modified datetime 上次修改计划的日期和时间。 version_number int 计划的当前版本号。例如如果计划已修改 10 次则 version_number 为 10。 转载于:https://www.cnblogs.com/kerrycode/p/3362415.html
http://www.yutouwan.com/news/136257/

相关文章:

  • 网站建设用什么程序语言wordpress中英网站插件
  • 检察院前期网站建设如何做一家门户网站
  • 临沂建设局网站视频推广渠道有哪些
  • 在线视频网站如何制作中华网军事
  • 电商网站 app图片转链接生成器在线制作
  • 郑州网站seo排名机械加工网外协
  • 张家港杨舍网站制作如何建设黔货出山电子商务网站
  • 长沙网站建设1681989淮安市淮阴区建设局网站
  • 郑州市惠济区建设局网站企业营销网站模板
  • 一级a做爰片2202网站焦作建设网站哪家好
  • 自己的服务器做网站域名解析无货源网店现在还挣钱吗
  • 北京网站排名优化软件全国高端定制
  • 重庆潼南网站建设哪家便宜邢台哪里提供网站制作
  • 建设网站的功能及目的是什么意思app下载安卓软件
  • 网站价格套餐深圳网站制作功能
  • 网站开发合同受托方深圳外贸是做什么的
  • 网站模板生成凡客衬衫官方网站
  • 成都优化网站关键词网站建设实训致谢语
  • 做网站用html还是python好wordpress 微信h5
  • 宋家庄网站建设网站开发设计心得
  • 烟台网站建设工作登录百度
  • 郑州做网站公网站建设做的快
  • 新闻标题做的好的网站小公司企业简介怎么写
  • 下载站推广服务器与网站吗
  • 学网站开发应该学什么wordpress 自定义面板
  • 合肥专业网站排名推广网站企业优化
  • 什么是网站后台建设wnmp搭建后怎么做网站
  • 设计网站pc版wordpress中文字体库
  • 商城网站类建设哪家好网站开发浏览器分辨率
  • 福田做商城网站建设哪家便宜推广普通话手抄报句子