sql拼接 html 发送,Sqlserver存储过程生成并发送HTML监控报告

## 背景

计划任务会在每天凌晨进行数据处理,这个过程正常情况大约耗时6-7小时。在每天9点前需要保证所有的数据全部完成处理,这是一个deadline。如果未完成,表示当天运维出现事故,影响到了客户。

在初期,若某个数据库数据处理失败,会发送报警邮件,当报警邮件多起来,从邮件中确认哪个数据库处理失败,无疑是一件困难的事情。

于是通过编写存储过程,将所有的DB数据处理情况全部监控起来,每天发送一封html 格式的报告,这样就可以快速准确的知道数据处理状态。

## 最终效果

* 下图中是数据库服务器列表,一台数据库服务器可以创建多个数据库,每个Profile都是一个DB。

-----

![](https://s4.51cto.com/images/blog/201807/27/f902c33836643ec1d63d4b28a6c7df05.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

## 实现方式

* 上图表格中的结果,依赖于运维数据库中的一张表`ProcessDurationReport`,这张表里的记录是程序在处理每个数据库时,将处理的耗时情况写入,我们再通过SQL把表里的信息进行计算汇总,最后拼接成html页面,通过Sqlserver的邮件服务发送出去。

* 表结构如下

![](https://s4.51cto.com/images/blog/201807/27/8b180494483275ad8e5bc80608ec6596.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

* 相关的存储过程如下

![](https://s4.51cto.com/images/blog/201807/27/c71aa12f683cdad6a4005b9fb46b03f3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

* 相关的存储过程[链接](http://down.51cto.com/data/2449859)

## 写在最后

此功能的实现,意味着简化运维操作,每天可以通过查看报告来确定数据处理状态。

也可以在此基础上继续进行改进,变为一个小型网站,实时的将处理状态展示出来。

也可以增加其他功能,将历史的数据处理状态进行展示。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值