【发布时间】:2011-08-16 20:07:40
【问题描述】:
我正在使用 SQL Server 2005 中的 SQL Server 代理作业执行存储过程。
直到昨天,这项工作一直在快速运行。从昨天开始,这项工作需要超过 1 小时而不是 2 分钟。
我在 SSMS 中执行了存储过程,执行时间不到 1 分钟。
我不明白为什么在作为 SQL Server 代理作业执行时需要超过 1 小时?
【问题讨论】:
-
如果您在 SSMS 中执行相同的 SP 并且它有效,则可能是 Job 的设置已更改,例如它在错误的数据库上执行。如果没有,请检查 Activity Monitor 代理正在做什么或启动跟踪以获取已执行的命令。也许有锁定问题。如果手动执行作业,是否还会出现问题?
-
@Bernhard,感谢您的回复。我检查了作业并重新创建了它。还是同样的问题。是的,如果我手动执行这项工作,它仍然需要很多时间
-
@Preteek 你能发布工作的设置吗?我能想到的这种行为的唯一原因是 SP 的不同执行。由于参数等与手动执行时相同,因此 SQLServer 应该使用相同的执行计划等。也许你可以看看 SQL Log - 也许这会给我们一个提示。
-
@Bernhard- 在工作属性中,Owner=sa;在步骤中,类型=t-SQL;命令 = Exec dbo.StoredProcedureName
-
@Bernard - 没有理由假设他们将使用相同的计划。可能是参数嗅探问题见Slow in the Application, Fast in SSMS? Understanding Performance Mysteries
标签: sql-server sql-server-2005 sql-agent-job sql-agent