0

上下文:SQL Server 2012、Windows Server 2008 R2(64 位)、2 个内核、大量 RAM 和 HD 空间、通过 JScript(不是 .NET)的 ADODB

这些非常简单的存储过程不断超时。我也没有很多记录(从服务器的角度来看):100,000 左右。

CREATE PROCEDURE [dbo].[Transfer_Part1]
AS
    SET NOCOUNT ON
    INSERT INTO Primary.dbo.Post
    SELECT *
    FROM Secondary.dbo.Pre
    WHERE HrefProcessed = (-1)
        AND ReferrerProcessed = (-1);

CREATE PROCEDURE [dbo].[Transfer_Part3]
AS
    SET NOCOUNT ON
    DELETE
    FROM Secondary.dbo.Pre
    WHERE HrefProcessed = (-1)
        AND ReferrerProcessed = (-1);

我能做些什么来停止收到这些消息吗?

[Microsoft][ODBC SQL Server Driver]Query timeout expired
EXEC Transfer_Part1
[Microsoft][ODBC SQL Server Driver]Query timeout expired
EXEC Transfer_Part3
4

1 回答 1

1

您在 HrefProcessed 和 ReferrerProcessed 上有 2 列索引吗?

另请参阅SQL Server 2008 上的 Bulk DELETE(是否有类似 Bulk Copy (bcp) for delete data 的内容?)第二个。

于 2013-05-01T10:23:59.377 回答