标签:
今天早上碰到的一个问题,因为解决了所以打算记录下来做个技术储备,顺便为其他跟我一样碰到相关问题但是不懂解决还没找到解决方法的人提供一个帮助。
不知道有没有人遇到过这个问题,打开作业历史记录查看的时候发现提示超时,如下图:
但是更坑的是,其中一部分作业历史记录是可以正常查询的,如下图:
花了一个上午的时间度娘了下没有找到类似的问题和原因,又去加的技术群里面问了问,各位大神很热情的帮忙,虽然没有得到具体的解决方法,但是从一个大神那里得到了一点灵感,有可能是历史记录数量太多的问题引起的(其实在看到连接超时的时候我就该想到了才是>_<),于是就抱着尝试下的心理对历史记录数据进行了下清理,好在真是这个原因引起的,最后又可以查询到了,当时查到的时候那个高兴的呀,本来都差点放弃治疗了,好了,废话不多说了,以下是解决方法:
1、可以通过以下SQL语句查询相关作业的历史记录的数量:
select count(*) from msdb.dbo.sysjobhistory
where job_id=(select job_id from msdb.dbo.sysjobs where [name]=‘作业的名字‘)
and run_date>20150801
run_date:日期
PS:因为刚开始查询的时候是用下面的SQL语句查的:
select * from msdb.dbo.sysjobhistory
where step_id=0 and job_id=(select job_id from msdb.dbo.sysjobs where [name]=‘作业的名称‘)
and run_date<20150801
因为多加了一个step_id的查询条件,所以第一次清理的时候没清理干净,实际上的数据量还是很大,因为只删除了一种状态的
2、进行删除:
delete from msdb.dbo.sysjobhistory
where job_id=(select job_id from msdb.dbo.sysjobs where [name]=‘作业的名称‘)
and run_date<20150801
因为我的这个作业执行的很频繁,一分钟一次,所以数据量很大,如果有进行如下设置的话(具体配置看需求)应该是不会出现这个问题的。
以上,第一次写这种技术贴(大概叫这个?),所以如果有哪里有错误欢迎各位指出来,咱也能进行下修正。>_<
标签:
原文地址:http://www.cnblogs.com/liaria/p/4757665.html