C# 更新sql表的最快方法是什么?

C# 更新sql表的最快方法是什么?,c#,sql,C#,Sql,我有一个C#应用程序,允许用户更新数据库中的一些列。我的问题是数据库中有30000条记录,而仅仅更新50000条记录就需要30分钟。我能做点什么来加快速度吗 我的更新查询如下所示: UPDATE SET UM = 'UM', Code = 'Code' WHERE Material = 'MaterialCode'. 我唯一独特的约束是材料。我读取用户选择的文件,将数据放入datatable中,然后逐行更新数据库中的相应材料。限制数据库中的索引数量,尤其是在应用程序频繁更新数据的情况下。这是

我有一个C#应用程序,允许用户更新数据库中的一些列。我的问题是数据库中有30000条记录,而仅仅更新50000条记录就需要30分钟。我能做点什么来加快速度吗

我的更新查询如下所示:

UPDATE SET UM = 'UM', Code = 'Code' WHERE Material = 'MaterialCode'. 

我唯一独特的约束是材料。我读取用户选择的文件,将数据放入datatable中,然后逐行更新数据库中的相应材料。限制数据库中的索引数量,尤其是在应用程序频繁更新数据的情况下。这是因为每个索引都会占用磁盘空间,并且会减慢添加、删除和,在更新行时,只有在分析数据的使用情况、执行的查询的类型和频率以及查询将如何使用新索引之后,才能创建新索引

在许多情况下,创建新索引的速度优势超过了使用额外空间和缓慢修改行的缺点。但是,避免使用冗余索引,仅在必要时创建它们。对于只读表,可以增加索引的数量

  • 如果更新频繁,请对表使用非聚集索引

  • 如果更新/插入不频繁,请在表上使用聚集索引

  • C代码可能不是问题,更新语句很重要。update语句的Where子句是要查找的地方。在where子句中需要有一些索引列


  • 另一件事,是字段材料,索引?此外,where子句是否需要位于具有varchar值的字段上?它不能是整数值字段吗


    如果对具有整数而不是字符串的字段进行筛选,性能会更好。不确定这对您是否可行。

    通过显示您的SQL语句来帮助我们。您可以发布更新查询和架构吗?您有很多独特的约束吗?除了其他建议之外,查看运行更新的C代码可能也会有所帮助。有可能您在客户端执行更新的方式不太理想。我还要补充其他评论:在这30分钟内,cpu/内存是否过高?因为根据查询的不同,您可能会遇到瓶颈。