gpt4 book ai didi

c# - 在数据库中插入 1,000,000 行时超时(有时)

转载 作者:行者123 更新时间:2023-11-30 15:58:30 29 4
gpt4 key购买 nike

我正在使用 .NET Framework 4.0、Entity Framework 6.1.3 和 SQL Server 2012 开发 C# 库。

我有一个用 Ado.net 调用的存储过程:

CREATE PROCEDURE [dbo].[InsertCodes]
@codes as dbo.SerialAndValueList READONLY -- Codes
, @username nvarchar(50)
, @source nvarchar(50)
, @column2 tinyint
AS
Declare @codesCount int;

set nocount on;

-- =========== CODE =============
INSERT INTO Code (Serial, Column1, Column2, Column3, UserName, Source)
SELECT Serial, Column1, @column2, @column3, @username, @source FROM @codes

IF (@@ERROR != 0)
RETURN -1 -- Database error

RETURN 0

SerialAndValueList:

CREATE TYPE [dbo].[SerialAndValueList]
AS TABLE
(
Serial nvarchar(20),
Column1 tinyint
)

我用它来存储 1,000,000 个连续出版物(@codes 有 1,000,000 行)。

我正在使用相同数量的代码对其进行测试,有时我会遇到超时异常,而其他时候则不会。

我找到了文章Configure the remote query timeout Server Configuration Option建议:

EXEC sp_configure 'remote query timeout', 0 ;  
GO
RECONFIGURE ;
GO

但如果我这样做,我只想在这个存储过程中禁用它(在开始时),并在离开它之前重新启用它。

另一个问题是,在我运行存储过程但在此处阅读 remote query timeout Option 后仅 60 秒发生超时。 ,我看到默认值为 600 秒。

如何获取数据库中远程查询超时选项的当前值?

或者,我该如何解决这个问题?

最佳答案

远程 XXX 超时 值与在服务器上运行的传出 远程查询的超时相关 - 例如对链接服务器的传出查询,设置对来自客户端的传入查询没有影响。

如果您想要更高的超时设置 .CommandTimeout,它在 ObjectContextSqlCommand 上可用。

关于c# - 在数据库中插入 1,000,000 行时超时(有时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229810/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com