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群里 ...
随机推荐
- centos LAMP第三部分php,mysql配置 php配置文件 配置php的error_log 配置php的open_basedir 安装php的扩展模块 phpize mysql配置第二十一节课
centos LAMP第三部分php,mysql配置 php配置文件 配置php的error_log 配置php的open_basedir 安装php的扩展模块 phpize mysql配 ...
- Kconfig文件说明
Kconfig的格式 下面截取/drivers/net下的Kconfig文件中的部分内容: # Network device configuration menuconfig NETDEVICES d ...
- scRNA-seq测序的两种技术[转载]
转自:http://www.ebiotrade.com/newsf/2017-9/201795172237350.htm 1.综述 哈佛大学的两个团队将微流体技术引入单细胞RNA-Seq方法中,分别开 ...
- java map典型排序
List<Map.Entry<TbDiseases, Double>> list = new ArrayList<Map.Entry<TbDiseases,Doub ...
- 内置函数——format
说明: 1. 函数功能将一个数值进行格式化显示. 2. 如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化. >>> format(3.1 ...
- Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2)
A. The King's Race 签. #include <bits/stdc++.h> using namespace std; #define ll long long ll n, ...
- AtCoder Grand Contest 029 Solution
A: Solved. 签. #include <bits/stdc++.h> using namespace std; #define ll long long #define N 200 ...
- 《Java入门第二季》第二章 封装
什么是java中的封装1.封装的概念:隐藏信息.隐藏具体的实现细节. 2.封装的实现步骤: 1)修改属性的可见性,private.2)创建修改器方法和访问器方法,getXXX/setXXX.(未必一定 ...
- java第五天
p37: 练习1 /** * Created by xkfx on 2017/2/22. */ public class DataOnly { int anInt; char aChar; publi ...
- uboot能ping通本机无法ping通本机上搭建的虚拟机
注意 转载请注明出处:https://www.cnblogs.com/dakewei 一.背景 1.1 uboot不能被其它主机ping通,这是由于uboot没有对其它主机发送过来的arp包进行响应, ...