ALTER proc [dbo].[usp_EmailLongRunningSQL]
as
begin
declare@LongRunningQueries AS TABLE
(
lrqId int IDENTITY(1,1) PRIMARY KEY,
spid int NULL,
batch_duration bigintNULL,
program_namenvarchar(500) NULL,
hostname nvarchar(100) NULL,
loginame nvarchar(100) NULL,
sqltext nvarchar(max) NULL
)
-- variabledeclaratuions
DECLARE @exectime DATETIME
DECLARE @tableHTMLNVARCHAR(MAX)
DECLARE @Handle VARBINARY (85)
DECLARE @SPID INT
DECLARE @sqltext NVARCHAR(MAX)
DECLARE @timeLimitsmallint
declare @Sub as varchar(100)
set @Sub = @@servername + 'Long Running Query found'
SET @timeLimit=(3*60) -- minutes
-- WAITFOR DELAY'00:01:05' -- uncomment for testing (1min:5sec)
-- populate thetable with execution info, you don't have to use top 1
INSERT INTO @LongRunningQueries(spid, batch_duration, program_name, hostname, loginame)
SELECT top 5
P.spid
, convert(bigint,DateDiff(ms,P.last_batch,getdate()))/1000
, P.program_name
, P.hostname
, P.loginame
FROM master.dbo.sysprocesses P WITH(NOLOCK)
WHERE (P.spid > 50)
AND P.status NOT IN('background', 'sleeping')
AND P.cmd NOT IN('AWAITING COMMAND','MIRROR HANDLER','LAZY WRITER','CHECKPOINT SLEEP','RA MANAGER')
AND convert(bigint,DateDiff(ms,P.last_batch,getdate()))/1000 >@timeLImit
-- use a cursorto update the sqltext for each pid
DECLARE @lrqId int
DECLARE mycur cursor for
SELECT lrqId from @LongRunningQueries
ORDER BY lrqId
OPEN mycur
FETCH NEXT FROM mycur INTO @lrqId
WHILE @@FETCH_STATUS=0
BEGIN
SET @SPID =(SELECT spid from @LongRunningQueries WHERElrqId=@lrqId)
-- get the SQL theSPID is executing
SELECT@Handle = sql_handleFROM master.dbo.sysprocesses WHEREspid = @SPID
UPDATE@LongRunningQueries
SET sqltext =(SELECT text FROM sys.dm_exec_sql_text(@Handle))
WHERE lrqId = @lrqId
FETCH NEXT FROM mycur INTO @lrqId
END
CLOSE mycur
DEALLOCATE mycur
DELETE FROM @LongRunningQueries WHEREsqltext IS NULLOR sqltext='' OR program_nameLIKE '%DatabaseMail%'
IF EXISTS(SELECT * FROM@LongRunningQueries WHERE sqltext IS NOT NULL OR sqltext<>'')
BEGIN
-- populate atable with it's info and mail it
SET @tableHTML=
N'<H1>LongRunning Querys</H1>' +
N'<tableborder="1">' +
N'<tr><th>SPID</th>'+
N'<th>Duration</th>'+
N'<th>Application</th>'+
N'<th>HostName</th>'+
N'<th>Login</th>'+
N'<th>SQLExecuting</th></tr>' +
CAST(( SELECT td = T.spid, '',
td = T.batch_duration, '',
td = T.[program_name], '',
td = T.hostname, '',
td = T.loginame, '',
td = T.sqltext, ''
FROM
@LongRunningQueries T
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>'
-- if @tableHTMLis NULL, mail will not get sent
EXEC msdb.dbo.sp_send_dbmail,
@recipients= 'smith.liu@126.com'
@body = @tableHTML,
@body_format = 'HTML';
END
end相关推荐
用SQL SERVER 发送邮件详解
<br /><br />SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口。。。等信息。<br /> 以下脚本实现了数据库邮件的配置:<br />--下面是具体的配置邮件步骤<br />--在 sa 系统帐户下运行。<br />--<br
用邮件发送运行时间久的SQL语句
ALTER proc [dbo].[usp_EmailLongRunningSQL] as begin declare@LongRunningQueries AS TABLE ( lrqId int IDENTITY(1,1) PRIMARY KEY, spid int NULL, batch_duration bigintNULL, program_namenvar...
SqlServer中如何解决session阻塞问题
简介 对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题。 最近开始接触运维工作,所以自己总结一些方案便于不懂数据库的同事解决一些不太紧要的数据库问题。类似方法很多理论也很多,我就不做深究,就是简单写一个方案,便于菜鸟使用的。 阻塞理解 在Sql Server 中当一个数据库会话中的事务正锁定一个或多个其他会话事务想要读取或修改的资源时,会产生阻塞(Blocking)。通常短时间的阻塞没有问题,且是较忙的应用程序所需要的。然而,设计糟糕的应用程序会导致长时间的阻塞,这就不必要地锁定了资源,而且阻塞了其他会话读取和更新它
linux 设置邮件提醒,linux 定时邮件提醒
简单实现对Linux服务器的定时监控,可以通过定时执行任务和邮件收发来实现。定时执行任务:crontabcrond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程.crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。crontab命令的使用方法:usage: crontab [-u user] filecrontab [ -u user ...
OpenBullet2 学习研究2-Conditions条件之KeyCheck的使用
上一节我们学习了如何安装Openbullet2以及如何新建一个配置,最后我们再配置里面新建一个Http的请求块,帮助我们发送了第一个请请求。这一节我们来学习check块。当我们发送请求以后,请求返回的内容是否是我们想要的,或者请求发送正确没有,这个我们怎么判断呢?这个时候就要用到check块了。
stm32h743 FM25CL64铁电存储器踩坑记录
调试FRAM经验总结: 1、跑完FRAM读写代码之后,逻分仪发现总线上只有简单、短暂的电平变化,明显不是SPI的通信数据。 (经提醒发现连片选拉高拉低都没有执行到位) 后来发现是因为片选引脚没有初始化,所以直接拉高拉低是无效的。 2、引脚成功初始化后发现CLK、MISO、MOSI数据仍不正常。通过加打印的方式发现跑到HAL_SPI_Transmit中之后还没有执行到写SPI数据寄存器的那一步就return了。 后来经提醒发现: 上图中的指针使用方式错误 后来又发现: 打印出来发现
Oracle GoldenGate For SQL Server 未提交事务导致MSSQL日志不截断
使用 Oracle GoldenGate 将 SQL Server 表数据同步到 Oracle 中。 偶尔检查MSSQL日志使用情况,发现日志越来越大,17GB了。
记录一次PowerJob使用达梦数据库的配置
记录一次PowerJob使用达梦数据库的配置
SQL Server 2005 配置发送邮件
SQL Server 2005 配置发送邮件
SE模块理解+SE-Resnet模块pytorch实现
文章目录SE模块理解SE实现注意力机制原因SE-resnet网络pytorch实现定义residual定义SE模块 SE模块理解 SENet是Squeeze-and-Excitation Networks的简称,拿到了ImageNet2017分类比赛冠军,其效果得到了认可,其提出的SE模块思想简单,易于实现,并且很容易可以加载到现有的网络模型框架中。SENet主要是学习了channel之间的相关性,筛选出了针对通道的注意力,稍微增加了一点计算量,但是效果比较好。 SE模块广泛应用于去噪,去雨方向,利用SE模
微信小程序 - 解决支付报错 requestPayment:fail access denied (微信支付提示错误requestPayment:拒绝访问失败,真机运行测试或打包编译上线后报错问题)
微信小程序,微信支付,wx.requestPayment,微信小程序支付报错requestPayment:fail access denied,调不起微信,无法唤起支付弹窗,支付失败,支付权限没问题,小程序上线后支付报错,小程序真机测试支付报错,微信小程序苹果ios系统手机无法支付,小程序发布上线后支付报错,本地测试没问题,拒绝访问失败,小程序调起支付API requestPayment:fail:access denied微信开发者工具正常支付,权限没问题,微信公众平台,依旧报错怎么办,检查了appid都
[SQL Server]发送HTML格式邮件
sql server 发送html格式邮件.
LDRA Testbed(TBrun)软件单元测试_实例讲解(对多次调用的函数打桩)
在之前的文章《LDRA Testbed(TBrun)软件单元测试_操作指南》中,已经讲解了如何使用TBrun进行软件单元测试的基本操作步骤。本篇文章将结合实例进一步讲解被测函数中包含多次调用其他函数时,如何对其打桩来实现测试目的(详细的操作流程本文不再重述,若有不清楚的,可以结合之前的操作指南一起来看)。本文以一个被测函数作为示例,讲解了如何使用Testbed(TBrun)对涉及到多次调用其他函数的被测函数进行单元测试。本文的示例可能比较简单,但是思路、方法和流程都是通用的,希望对大家有所帮助。
SQL Server 存储过程发送邮件
SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口。。。等信息。 以下脚本实现了数据库邮件的配置:--下面是具体的配置邮件步骤
Halcon实例转OpenCVSharp--粘连物体分割与计数(基于距离变换+分水岭算法) (附源码)
本文作者Color Space,文章未经作者允许禁止转载! 本文将介绍OpenCVSharp应用实例--粘连物体分割与计数(基于距离变换+分水岭算法)! 本文使用的OpenCVSharp版本---》v4.5.3。 实现目标:将下图中的硬币分割出来并计算数量。 预期效果图: ...
【开发必备插件】iframe嵌套报“拒绝连接请求”的本地解决方法
关键词:iframe 拒绝连接、X-Frame-Options、Chrome 插件、前端调试、Allow X-Frame-Options前几天我在本地项目里调试一个第三方网站的嵌入页面时,遇到了一个非常经典的报错:xxx.com 拒绝了我们的连接请求。熟悉的老前端们一眼就知道——这是。但对于日常开发来说,我们经常需要在本地测试 iframe 嵌套外部页面(比如嵌第三方登录页、支付页、可视化报表系统等)。而线上站点配置了或DENY时,就会直接导致 iframe 加载失败。
查看sql邮件发送的语句
SELECT [profile_id] ,[name] ,[description] ,[last_mod_datetime] ,[last_mod_user] ,EXEC msdb.dbo.sp_send_dbmail @profile_name = + name + , @recipients = 邮件地址@youkuaiyun.com, @subject = Test,
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
使用SQL SERVER 来自动发送邮件
可以使用SQL SERVER 来发送自动邮件,主要是使用SQL SERVER 的dbo.sp_send_dbmail 存储过程(在msdb数据库中)。 具体步骤如下: Step1: 编写要发送的邮件内容,然后调用sp_send_dbmail 存储过程来发送邮件: declare @tableHTML varchar(max) SET @tableHTML = N'&...
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
python发送excel表格的邮件,python发送电子邮件
每次生成报表后,根据报表发送频率类型计算下次生成报表的时间,然后每天只处理报表配置表中下次生成报表时间为当天的报表。PROC_BEGIN_TIME:报表生成时间段开始时间,格式:hh24:mi,例如需要每天7:00后才发送邮件,这里就填07:00。本邮件为自动发送,如有疑问,请与×××联系。NEXT_EXEC_TIME_RULE:下一次运行时间(针对发送频率为按规则发送的报表)
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
SQL Server 2008 R2中配置作业失败后邮件发送通知
SQL Server日常维护中难免会遇到作业失败的情况。失败后自然需要知道它失败了,除了例行检查可以发现出错以外,有一个较实时的监控还是很有必要的。比较专业的监控系统比如SCOM虽然可以监控作业执行情况在出错时进行报警,但对于DBA来说可能可定制性不高,最主要的是负责监控的人员在看到报警后一般都需要立刻联系DBA来解决,对于一些重要性不高的作业失败了,大半夜把你叫起来,感觉肯定是不爽的。SQL S
使用SMTP在SQL Server中发送自动作业电子邮件通知
When you have automated backup jobs running on your database server, sometimes you forget that they are even running. Then you forget to check to see if they are running successfully, and don’t realiz...
1049



被折叠的 条评论
为什么被折叠?



