如何分析和解决插入/更新性能问题?

时间:2010-03-11 16:44:59

标签: sql-server performance

我正在尝试将数千行插入表中,但性能是不可接受的。特定表上的行每行需要300毫秒才能插入。

我知道存在用于对SQL Server(SQL Server配置文件,数据库调优顾问)运行查询的工具,但是如何配置插入和更新语句以确定缓慢运行的插入?在查询运行时我是否被迫使用perfmon并使用计数器推断出问题?

2 个答案:

答案 0 :(得分:2)

我首先检查单个插入的查询计划,以了解与该操作相关的成本 - 从插件是否从其他地方选择数据的问题中不知道。

然后我会检查表索引以获取以下内容:

  • 有多少索引(除了已过滤的索引,每个索引也将插入)
  • 是否存在聚簇索引或是否将其插入堆中。
  • 如果聚集索引键意味着我们将在表的末尾获得热点利益或导致大量页面拆分。

这是所有基于SQL模式的问题,假设SQL中没有问题,您可以开始检查磁盘IO计数器以检查磁盘队列长度和响应时间。不要忘记日志驱动器响应时间,因为每个插入都将被记录。

这些问题很难确定,因为你可以提供建议,只需要检查一些事情。

答案 1 :(得分:0)

我打赌问题出在选择上,而不一定是更新。您是否尝试过分析更新语句的选择部分以确保首先没有问题?