为什么在进行更新时SQL会非常慢?

时间:2010-12-14 14:39:39

标签: c# sql-server fluent-nhibernate performance

突然对几张桌子进行更新比过去慢了10倍。有哪些好的建议可以确定根本原因和优化?可能是索引某些列导致更新速度慢吗?还有其他建议吗?

我认为比猜测更重要的是在确定性能的根本原因或指标的过程中提供帮助。

您是否可以使用Fluent NHibernate中的任何内容来帮助确定性能问题的根本原因?

6 个答案:

答案 0 :(得分:3)

首先尝试更新统计信息。

然后,查看您的索引,并确保您只有您需要的内容。其他索引绝对可以减慢插入速度。

然后,尝试重建索引。

在不知道架构,查询或数据量的情况下,很难说不止于此。

答案 1 :(得分:1)

...原因

  • 索引太多

  • 记录数量增加

  • 更新查询的where子句的错误索引covarage

  • 因多次更新而导致锁定问题(表锁定)

  • 硬件问题(磁盘控制器,网络等)

答案 2 :(得分:1)

与以往一样,在SQL服务器上运行SQL分析器可以让您清楚地知道您的瓶颈在哪一点。

答案 3 :(得分:1)

1-首先检查表是否没有锁

2-最近实施的触发器

3-数据库刷新可能需要索引重建。

4-正在进行一些预定义的工作。

5-任何未知原因

使用一些查询分析器工具来查看实际发生的情况。

答案 4 :(得分:0)

值得检查数据文件的增长设置,如果你正在进行大量的插入操作,这会迫使常规文件增长,它会表现为减速。

答案 5 :(得分:0)

还要检查是否以无序方式将数据插入到聚簇索引中。

聚簇索引按字段的顺序存储数据,这意味着如果它是唯一的,您将在每个插入上重新排列数据。

群集索引可以更好地处理顺序数据。