成绩表格模板MySQL_Mysql数据统计脚本模板

数据统计对于小型业务系统可能不需要集群计算。约定计算脚本,该脚本特点: 1.动态传入时间变量。便于重算 2.扑捉计算结果状态,执行时间 3.计算结果入库 MySQL CREATE DEFINER = `mc`@`10.%.%.%` PROCEDURE `NewProc`(IN v_countDate DATE)BEGIN/* =========

数据统计 对于小型业务系统可能不需要集群计算。约定计算脚本,该脚本特点:

1.动态传入时间变量。便于重算

2.扑捉计算结果状态,执行时间

3.计算结果入库

MySQL

CREATE DEFINER = `mc`@`10.%.%.%` PROCEDURE `NewProc`(IN v_countDate DATE)

BEGIN

/* =======================================================================

* 系统名 : **数据平台

* 子系统名 : 报告统计-独立IP-TCP连接数(天)

* PROC名 : proc_stat_service_idc_ip_tcp_day

* 概要 : 每天从mc_stat_trends 按服务器IP统计独立IP TCP连接数的平均值和最大值指标。

* 改版履历 :

* 版本 日期 作者名 备注

* 1.0.1 2015.03.19 #### 初次作成

* ======================================================================= */

-- 输入参数变量(v_beginTime:执行开始时间;v_endTime:执行结束时间;v_countDate:查询时间,默认1天前;v_date_type:时间周期)

DECLARE v_beginTime DATETIME DEFAULT NOW();

DECLARE v_endTime DATETIME;

DECLARE v_date_type VARCHAR(20) DEFAULT 'day';

DECLARE v_status int(11) DEFAULT 1;

DECLARE v_log_title VARCHAR(100) DEFAULT 'proc_stat_service_idc_ip_tcp_day';

-- 游标结果变量

DECLARE r_udate DATETIME;

DECLARE r_date_type VARCHAR(20);

DECLARE r_service VARCHAR(100);

DECLARE r_idc VARCHAR(100);

DECLARE r_ip VARCHAR(100);

DECLARE r_val_max FLOAT(20,2);

DECLARE r_val_avg FLOAT(20,2);

-- 遍历数据结束标志

DECLARE done INT DEFAULT FALSE;

-- 游标

DECLARE cur CURSOR FOR

SELECT v_countDate AS udate,v_date_type AS date_type, service, idc,ip, AVG(value_avg),MAX(value_max)

FROM view_mc_stat_trends WHERE itemname='Established connections' AND DATE(udate)=v_countDate GROUP BY ip;

-- 将结束标志绑定到游标

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET v_status=0;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;

read_loop:LOOP

FETCH cur INTO r_udate,r_date_type,r_service,r_idc,r_ip,r_val_avg,r_val_max;

IF done THEN

LEAVE read_loop;

END IF;

REPLACE INTO mc_stat_service_idc_ip_tcp(udate,date_type,service,idc,ip,val_avg,val_max) VALUES(r_udate,r_date_type,r_service,r_idc,r_ip,r_val_avg,r_val_max);

END LOOP;

CLOSE cur;

-- 结束时间

SET v_endTime = NOW();

-- 添加JOB执行日志

INSERT INTO t_joblog(beginDate,endDate,jobName,jobType,STATUS,haoshi,createDate) VALUES(v_beginTime,v_endTime,v_log_title,'PROCEDURE',v_status,v_endTime-v_beginTime,NOW());

END;

CREATE DEFINER=`root`@`localhost`

EVENT `NewEvent`

ON SCHEDULE EVERY 1 DAY STARTS '2015-03-25 03:20:00'

ON COMPLETION PRESERVE

ENABLE

DO

CALL proc_stat_service_tcp_day(DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 DAY),'%Y-%m-%d'));

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值