-1

我有一个 C# 应用程序,它允许用户更新数据库中的某些列。我的问题是我在数据库中有 300.000 条记录,仅更新 50.000 条记录需要 30 分钟。我可以做些什么来加快速度吗?

我的更新查询如下所示:

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

我唯一的独特约束是材料。我读取用户选择的文件,并将数据放入数据表中,然后逐行进行,并更新数据库中的相应材料

4

3 回答 3

1

限制数据库中的索引数量,特别是如果您的应用程序更新数据非常频繁。这是因为每个索引都占用磁盘空间,并且增加、删除和更新行的速度很慢,您应该在分析使用情况后才创建新索引数据、执行查询的类型和频率,以及您的查询将如何使用新索引。

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

于 2012-04-06T15:46:43.760 回答
1
  1. 如果更新频繁,请在表上使用非聚集索引。

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

  3. C# 代码可能没有问题,你的更新语句很重要。update 语句的 where 子句是需要注意的地方。您需要在 where 子句中有一些索引列。

于 2012-04-06T15:51:59.827 回答
0

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

如果您过滤具有整数而不是字符串的字段,性能会更好。不确定这是否适合您。

于 2012-04-06T23:44:51.420 回答