问题涉及SQL Server和C#。
我试图在一个查询中执行多个删除语句。格式具有以下结构:
DELETE from dbo.table where column = 'value'
重复超过100000次
我通过StringBuilder
构建命令,然后在我的C#代码中调用它:
cmd.Connection = con;
int rows = cmd.ExecuteNonQuery();
然而,执行需要花费大量时间并以此错误结束:
操作或服务器完成之前经过的超时时间。通过Management Studio执行也需要花费大量时间,让我认为查询的性能不够。但是,在这种情况下,查询成功执行。
显然,使用较少的DELETE
语句,查询会正确结束,因为它是一个非常简单的查询。执行多个语句并避免此错误的最佳方法是什么?
答案 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
干杯!