`
seawavenews
  • 浏览: 230363 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

sqlserver2000重复作业调度

阅读更多
 
在跟发电厂做辅助决策系统时,涉及到电量结算问题。电厂方只提供实时的每分钟的电力数据,我方要根据电力
来算出每一时段的电量(以一刻钟为一时段,一天96时段)。

涉及到两个问题:
1.从电厂端Oracle数据库中把yxrtdata实时表的数据采集到本地Sqlserver,并作为历史表存储
2.在本地处理里yxrtdata表把在一刻钟内的电力积分成电量,然后分解时间字段,对应到竞价辅助决策系统
数据库check_machine_quantity表的主键,最后插入记录。

电厂端Oracle数据库,所要采集的表结构:
CREATE TABLE [dbo].[yxrtdata] (
 [ID] [decimal](10, 0) NOT NULL ,
 [GCWZDM] [char] (24) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [SZ] [decimal](1, 0) NULL ,
 [SJ] [datetime] NULL
)

竞价辅助决策系统数据库(SQLserver2000)
被插入的表结构
CREATE TABLE [dbo].[CHECK_MACHINE_QUANTITY] (
 [YEAR] [char] (4) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [MONTH] [char] (2) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [DAY] [char] (2) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [PERIOD_ID] [numeric](10, 0) NOT NULL ,
 [POWER_PLANT_ID] [numeric](10, 0) NOT NULL ,
 [MACHINE_NO] [numeric](10, 0) NOT NULL ,         --以上是主键
 [CHECK_MACHINE_QUANTITY_EXAM_QUANTITY] [numeric](15, 4) NULL ,--要插入的电量
 ……………………

第一个问题的解决思路:在Sqlserver2000建立作业,实现每分钟采集数据。
第二个问题的解决思路:对一刻钟内的sz列求和公式为:sum(sz)*60.0/3600.0/10.0,单位为(万千瓦时),sz的单位为(兆千瓦).取sj的时间部分(小时,分钟)求出所在的段(一天共96个时段).以防对方数据晚采,对历史表的处理时间段为取得最大时间的前30分钟.
一下是处理过程的部分代码。
declare @maxTime as datetime,  
 @powerPlantID as decimal,
 @periodID as decimal,
 @machineNo as decimal,
 @startTime as datetime,
 @endTime as datetime,
 @quantity as decimal(15,6)

set @powerPlantID=32 --电厂ID,若其他电厂修改.
select @maxTime=max(sj) from ycrtdata
--取最近一刻时间
set @maxTime=dateadd(minute,-convert(decimal,datepart(minute,@maxTime)%15),@maxTime)
--设定起始时间
set @startTime=DateAdd(minute,-30,@maxTime)
set @endTime=DateAdd(minute,15,@startTime)
--转为第几时段
set @periodID=(convert(decimal,datepart(hour,@startTime))*60+convert(decimal,datepart
(minute,@startTime)))/15+1

--处理1#机对应ID=207
select @quantity=sum(sz)*60.0/3600.0/10.0 from ycrtdata where id=207 and sj>=@startTime and
sj<@endTime 
insert into gboss..CHECK_MACHINE_QUANTITY            
(year,month,day,period_id,power_plant_id,machine_no,check_machine_quantity_exam_quantity)
      values(year(@startTime),month(@startTime),day
(@startTime),@periodID,@powerPlantID,1,@quantity) 
--delete from ycrtdata where id=207 and sj>=@startTime and sj<@endTime 

在Sqlserver中新建作业,每15分钟执行一次。 这样就可以实现电力积分,转为电量存到CHECK_MACHINE_QUANTITY的表中的重复作业调度。
分享到:
评论

相关推荐

    SQL语句创建Sql Server 下的作业调度.txt

    ### SQL Server 作业调度知识点详解 #### 一、SQL Server 作业调度概述 在 SQL Server 中,作业调度是一项重要的管理工具,它允许管理员自动化执行一系列任务(如备份数据库、清理日志等)。通过作业调度,可以...

    SQL SERVER定时作业的设置方法

    - SQLSERVERAGENT服务必须处于运行状态,且启动它的NT登录用户应与启动SQL Server数据库的NT登录用户相同。 6. **作业历史记录管理** - 为了保留特定时间段的历史记录,可以在“SQL Server代理”属性中调整作业...

    Sql Server 定时 作业 任务 创建 详细步骤

    ##### 第四步:配置作业调度 1. **创建新的作业调度**: - 在“新建作业”对话框中的“调度”选项卡,点击“新建”按钮。 - 在“调度名称”中输入调度名称,例如:“Schedule1”。 2. **设置作业运行频率**: - ...

    如何设置SQL Server数据库定时操作

    1. 首先,你需要在SQL Server Management Studio (SSMS) 中打开你的SQL Server实例,然后导航到“管理”菜单,选择“SQL Server 代理”,接着点击“作业”。 2. 在作业列表中,右键单击并选择“新建作业”。在...

    在SQL Server中实现自动化管理.pdf

    作业调度允许管理员定义何时以及如何执行作业,即使在发生错误时,也能按照预设的策略进行响应。 3. **警报**:SQL Server的警报功能使得系统能够对潜在问题做出响应。当特定条件满足时(如性能指标超出阈值或错误...

    SQLServer200自动杀锁

    接下来,我们需要在SQL Server Agent中创建一个新的作业,并配置作业步骤调用刚才创建的存储过程。作业的调度可以根据实际需求设置,比如每隔一定时间间隔运行一次,或者在特定时间点运行。 在"1建表kill_log.sql...

    SQL Server 2005基础教程

    - 2000年,发布SQL Server 2000。 - 2005年,发布SQL Server 2005。 ##### 4. Microsoft SQL Server系统的体系结构 - **核心组件**: - **数据库引擎**:负责数据的存储和检索。 - **Analysis Services**:...

    企业管理器创建作业调度

    "企业管理器创建作业调度"这个主题聚焦于如何利用企业管理器(SQL Server Management Studio,简称SSMS)来设计和安排数据库作业,以便在特定时间执行预定的任务。下面将详细阐述这一过程。 首先,企业管理器是SQL ...

    SQL作业调度

    SQL作业调度是数据库管理系统中的一个重要功能,它允许管理员或开发人员预先定义一系列SQL任务,并设置它们在特定时间或间隔执行。这种自动化管理方式对于数据库维护、数据备份、报告生成等场景非常有用。以下是对...

    Inside Microsoft SQL Server 2005 The Storage Engine.rar

    此外,还有计划缓存、作业调度等内存管理策略。 12. **安全性**:SQL Server提供角色、权限、认证和授权等机制,确保只有授权用户才能访问特定数据。 综上所述,《Inside Microsoft SQL Server 2005 The Storage ...

    SQL Server 2005作业设置定时任务

    在SQL Server 2005中,为了实现自动化的数据管理任务,比如定时删除过期的图片数据,我们可以利用SQL Server Agent服务来创建作业(Job)。这个服务允许我们定义一系列的任务,然后按照预设的时间间隔自动执行。下面...

    预警代理重复执行作业

    在IT行业的数据库管理领域,SQL Server的作业调度功能是确保数据处理自动化与高效运行的关键工具之一。本文将基于“预警代理重复执行作业”的主题,深入探讨如何在SQL Server环境中利用SQL Server Agent(SQL Server...

    sql server学习笔记

    * Msdb:默认大小为 12MB,包含调度作业、警报等信息 * Pubs:示例数据库 * Northwind:示例数据库 数据库存储 * 数据文件(.mdf) * 次要文件(.ndf) * 日志文件(.ldf) * 文件组:方便对文件进行管理 创建...

    SQL2000数据库安装.pdf

    1. SQL Server 2000版本的安装程序文件名为“sqlserver2000setup.exe”。这是安装SQL Server 2000数据库管理系统的主要安装文件。用户需要运行此安装程序以开始安装过程。 2. SQL Server 2000是微软公司推出的...

    SQL Server 2012 创建定时作业(图文并茂,教你轻松快速创建)

    5. **设置作业调度** - **计划**:在“作业属性”对话框中,选择“计划”选项卡来设定作业的执行时间。你可以设置一次性执行,或者创建重复的计划,比如每天、每周或每月执行。根据需求调整执行频率和具体时间。 6...

    利用MS-SQL的DST access向sql server 导入数据的问题

    DTS是SQL Server 2000中的数据迁移工具,主要用于数据转换和加载。随着SQL Server版本的更新,DTS已被SSIS取代,SSIS在功能上更为强大,提供了更多预定义的任务和组件,支持更复杂的ETL(Extract, Transform, Load...

    SQL Server 数据库自动执行管理任务

    例如,作业可以在SQL Server代理服务启动时运行,或者在CPU使用率下降到预设的低水平时执行,这样可以确保在系统资源空闲时进行资源密集型的任务,避免对正常业务造成影响。 1. **计划触发的时间与事件**: - **...

    SQL Server数据库自动异地备份.pdf

    4. 启动SQL Server代理,使它执行“数据库维护计划”作业,并根据需要为作业制定具体的执行计划。 重复上述操作可以为其他六天制定相应的备份计划。每次制定的备份任务名称根据执行间隔进行适当改动,并将备份数据...

    SQL Server 2005 定时执行SQL语句的方法

    SQL Server 代理是SQL Server中的一个内置服务,专门用于自动化和调度任务。要设置它随系统启动,可以通过以下步骤操作: 1. 打开“我的电脑”,然后进入“控制面板”。 2. 在控制面板中选择“管理工具”。 3. 在...

Global site tag (gtag.js) - Google Analytics