SQLSERVER 数据调度示例,调度数据到中间表或者历史表
USE [MeiDongPay_Test]
GO
/****** Object: StoredProcedure [dbo].[Job_BatchTransferOrderToMidst] Script Date: 2017/10/19 10:37:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER
PROC [dbo].[Job_BatchTransferOrderToMidst]
AS
SET NOCOUNT OFF
BEGIN
DECLARE @MinID INT ,--最小值
@MaxID INT ,--最大值
@GoalID INT ,--上限
@Step INT ,--步长
@StartTime DATETIME ,--约束时间
@CurrHour INT--当前小时数
SET @CurrHour = DATEPART(hh, GETDATE())
SELECT @CurrHour
--当前小时限定只在指定时间段内处理数据
IF ( @CurrHour >= 0 AND @CurrHour < 23)
BEGIN
--仅处理小于约束时间的数据
SET @StartTime = CONVERT(VARCHAR(10), GETDATE(), 23)
SELECT @StartTime
--获取最小值 最大值 上限值
SELECT @MinID = 0 ,
@MaxID = ( SELECT MIN(ID)
FROM dbo.PayOrderInfo WITH ( NOLOCK )
WHERE SubmitTime < @StartTime
) ,
@GoalID = ( SELECT MAX(ID)
FROM dbo.PayOrderInfo WITH ( NOLOCK )
WHERE SubmitTime < @StartTime
) ,
@Step = 3000
--数据处理
IF ( @MaxID <= @GoalID )
BEGIN
--边界值修正
SET @MinID = @MaxID
SET @MaxID = @MinID + @Step
IF ( @MaxID > @GoalID )
SET @MaxID = @GoalID
--启动事务
BEGIN TRAN
--创建临时表
SELECT *
INTO #tempOrder
FROM dbo.PayOrderInfo
WHERE Id BETWEEN @MinID AND @MaxID
--临时表数据插入历史表
INSERT INTO PayOrderInfo_Midst
SELECT *
FROM #tempOrder
--休眠一秒 ,大数据量度执行时休眠1s可以让cpu有机会创建其他命令
WAITFOR DELAY '00:00:01'
--源表删除已插入历史表的行
DELETE FROM dbo.PayOrderInfo
WHERE ID BETWEEN @MinID AND @MaxID
--删除临时表
DROP TABLE #tempOrder
--事务提交
COMMIT TRAN
END
END
END
SQLSERVER 数据调度示例,调度数据到中间表或者历史表的更多相关文章
- python解析发往本机的数据包示例 (解析数据包)
tcp.py # -*- coding: cp936 -*- import socket from struct import * from time import ctime,sleep from ...
- mysql设计与优化以及数据库表设计与表开发规范
一.设计问题? 1.主键是用自增还是UUID ? Innodb 中的主键是聚簇索引. 如果主键是自增的,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的 ...
- SqlServer表数据与excel中数据的互相复制
一.SqlServer表数据复制到excel 1.新建查询,用sql语句把表数据读出来 2.然后,选择数据,右键,复制(也可以点击连同标题复制),复制到记事本中(不然会乱码) 3.然后再把记事本的内容 ...
- Cesium数据可视化-仓储调度系统可视化部分(附github源码)
Cesium数据可视化-仓储调度系统可视化部分 目的 仓储调度系统需要一个可视化展示物资运输实况的界面,需要配合GPS设备发送的位置信息,实时绘制物资运输情况和仓储仓库.因此,使用Cesium可视化该 ...
- kettle抽取数据发送邮件Linux调度
kettle抽取数据发送邮件Linux调度 #1.进入kettle安装目录 然后执行sqoop.sh文件启动kettlecd /app/pdi-ce-7.1.0.0-12/data-integrati ...
- PowerDesigner创建表 拷贝创建表语句 SQLSERVER创建数据库 使用查询 创建表 并且添加数据
PowerDesigner创建表 : 1.双击打开PowerDesigner 2.双击打开Create model 3左键点击Model types,再点击Physical Data m ...
- 在MS SQLSERVER中如何最快的速度清空所有用户表的数据
有时候我们需要清空数据库中所有用户表的数据,如果一张表一张表的清空的话,遇到一个庞大的数据系统估计得崩溃了. 用游标加上用变量来引用表名就可以做到这一点. 用变量来引用表名对表操作可以用在存储过程中 ...
- sqlserver 数据库 的数据库个数统计 表个数统计 表的数据量统计(转载)
http://www.cnblogs.com/qinche/archive/2012/08/09/app.html 由于今天要监控数据,急需统计实例中1有多少库2库里有多少表3每个表有多少数据 --将 ...
- SQLSERVER将一个文件组的数据移动到另一个文件组
SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...
随机推荐
- OOP理解
https://www.cnblogs.com/xiaosongluffy/p/5072501.html OOP是面向对象编程,有几大基础特性.抽象,封装,继承,多态 1:抽象:将世界上的具体事物提取 ...
- 经验搜索排名---google已经做过类似的了(我想多了)
由于编程的原因,我们需要经常的查资料,现在转载的文章比较多,我们经常看到的搜索结果的前十名基本上有7名是转载的.这样看起来很没有效率,后来突然想到,如果把大家的浏览结果搜集起来,然后进行权重排名,这样 ...
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest Solution
A:Broadcast Stations 留坑. B:Connect3 题意:四个栈,每次放棋子只能放某个栈的栈顶,栈满不能放,现在给出(1, x) 表示黑子放在第x个栈的第一个位置,白子放在第b个栈 ...
- 2018年浙江中医药大学程序设计竞赛 Solution
Problem A. Jhadgre的C语言程序 签. #include <bits/stdc++.h> using namespace std; int main() { puts(&q ...
- 《FontForge常见问题FAQ》字王翻译版
<FontForge常见问题FAQ> 字王翻译版 原文: http://fontforge.github.io/en-US/faq/ 翻译: 字王·中国 blog: http://bl ...
- java--jvm启动的参数
java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保 ...
- POI之Excel导入
1,maven配置 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-oox ...
- Django加载静态网页模板
Django加载静态网页模板 步骤: 第一步:在子系统blog根目录下新建模版目录templates,里面新建一个login.html <!DOCTYPE html> <html l ...
- confluence wiki 安装
1. 下载 wget https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.6.6 ...
- linux及安全《Linux内核设计与实现》第一章——20135227黄晓妍
<linux内核设计与实现>第一章 第一章Linux内核简介: 1.3操作系统和内核简介 操作系统:系统包含了操作系统和所有运行在它之上的应用程序.操作系统是指整个在系统中负责完成最基本功 ...