【问题标题】:Fast Stored Procedure but slow when executing using jobs快速存储过程,但使用作业执行时速度较慢
【发布时间】:2015-06-27 00:15:53
【问题描述】:

我有一个存储过程,在执行它或突出显示脚本时运行速度很快,通常会运行或执行代码。

只需一秒或 1.5 秒即可从来自一台服务器的 1 个表中选择前 3 名并将其插入到另一台服务器中的另一个表中。

但是当我尝试使用作业执行存储过程时,它需要一生的时间才能做到这一点。我错过了什么吗?

USE [xxxx]
GO
/****** Object:  StoredProcedure [dbo].[MARK_ACTIVE]    Script Date: 4/20/2015 5:55:53 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



ALTER PROCEDURE [dbo].[xxxx]
AS
SET ANSI_NULLS ON
INSERT INTO [123.456.7.890].[DBASE1].[dbo].[TABLE]    (smsfr,smsmsg,smsdt,dbdt,devid,status,status2,IsHEX)
SELECT TOP 3 smsfr,smsmsg,smsdt,dbdt,devid,status,status2,IsHEX
FROM [098.765.4.321].[[DBASE2].[dbo].[TABLE2] cr
WHERE
NOT EXISTS (SELECT  id,smsfr,smsmsg,smsdt,dbdt,devid,status,status2,IsHEX     FROM [123.456.7.890].[DBASE1].[dbo].[TABLE]  c
      WHERE cr.smsdt = c.smsdt)

【问题讨论】:

  • FROM [098.765.4.321].[[DBASE2].[dbo].[TABLE2] cr 中多余的 [ 是错字吗?
  • 是的,这只是一个拼写错误。对不起
  • 这是按计划运行的吗?您是否尝试过通过右键单击作业手动设置代理作业?如果它是一个计划作业,它可能与导致任一服务器的 I/O 增加的其他作业一起运行。这会导致速度变慢。

标签: sql-server stored-procedures jobs


【解决方案1】:

理论上,从任何连接调用的同一个存储过程应该以大致相同的速度运行,无论是谁调用它。但是……有些连接设置会导致创建不同的执行计划。如果您在 SSMS 中运行的东西(大概从您自己的 PC 本地运行)和在您的服务器上自动运行的东西之间获得不同的性能,我会检查两台机器上的 ANSI 连接设置。看看有什么不同,因为我敢打赌你那里有不同的东西

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2013-02-13
    相关资源
    最近更新 更多