Mar*_*vel 5 sql-server-2008 sql-server jobs
我们有一项工作没有计划运行,但我们怀疑是另一项工作启动了它。没有作业历史记录,但它确实出现在错误日志中。我们如何知道这是否正在被另一个工作调用?我知道我们可以使用 sp_start_job 在作业步骤中立即调用作业,但如果是这种情况,我们如何找到它?
而且,为什么运行的作业没有任何历史记录?
Error log entry:
2017-05-01 10:01:50.40 spid6s SPID: 131 ECID: 0 Statement Type: ALTER INDEX Line #: 1
2017-05-01 10:01:50.40 spid6s Input Buf: Language Event: EXECUTE [msdb]. dbo.IndexOptimize @Databases = 'Database1,Database2'
Run Code Online (Sandbox Code Playgroud)
我们如何知道这是否被其他工作调用?
在所有作业步骤中搜索由其他作业运行的具有作业名称的字符串(至少这是您所怀疑的)。该查询来自该网站。
USE [msdb]
GO
SELECT j.job_id,
s.srvname,
j.name,
js.step_id,
js.command,
j.enabled
FROM dbo.sysjobs j
JOIN dbo.sysjobsteps js
ON js.job_id = j.job_id
JOIN master.dbo.sysservers s
ON s.srvid = j.originating_server_id
WHERE js.command LIKE N'%KEYWORD_SEARCH%'
GO
Run Code Online (Sandbox Code Playgroud)
为什么运行的作业没有任何历史记录?
取决于您的工作历史记录的设置方式。请参阅我的博客文章。这里是另一个很好的参考。
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |