【发布时间】: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