C#& SQL Server - 完成操作或服务器

时间:2015-12-02 15:00:28

标签: c# sql-server-2008 timeout

问题涉及SQL Server和C#。

我试图在一个查询中执行多个删除语句。格式具有以下结构:

DELETE from dbo.table where column = 'value' 

重复超过100000次

我通过StringBuilder构建命令,然后在我的C#代码中调用它:

cmd.Connection = con;
int rows = cmd.ExecuteNonQuery();

然而,执行需要花费大量时间并以此错误结束:

  

操作或服务器完成之前经过的超时时间。通过Management Studio执行也需要花费大量时间,让我认为查询的性能不够。但是,在这种情况下,查询成功执行。

显然,使用较少的DELETE语句,查询会正确结束,因为它是一个非常简单的查询。执行多个语句并避免此错误的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

在查询中,不能只使用“IN”而不是“=”执行单个DELETE执行吗? 做类似的事情:

DELETE from dbo.table where column in ('Param1','Param2','(...)')

另外,您可以查看这篇文章: http://social.technet.microsoft.com/wiki/contents/articles/20651.sql-server-delete-a-huge-amount-of-data-from-a-table.aspx

干杯!