SQL Server表中的性能调优

时间:2017-10-28 10:18:14

标签: sql sql-server

如何对SQL Server表进行性能调优以加快插入速度?

例如,在Employee表格中,我有150 000条记录。当我尝试插入更多记录(大约20k)时,需要10-15分钟。

3 个答案:

答案 0 :(得分:1)

使用等待统计数据进行性能调整是一种很好的方法。下面是我要做的几个步骤

<强>步骤1:
运行插入查询

<强>步骤2:
打开另一个会话并在

下面运行
select * from sys.dm_exec_requests

现在状态和等待类型列应该为您提供有关下一步的详细信息

<强>实施例   如果状态被阻止(通常不会阻止插入),请检查阻止查询并查看阻止查询的原因

以上只是一个示例,您可能会遇到任何等待类型的更多信息

答案 1 :(得分:0)

我对加速插入的建议是在临时表中进行批量插入,然后在最终表中插入一个插入。

这假设新记录的来源是外部文件。

在任何情况下,您的问题都会留下许多重要信息:

  • 你现在如何进行插入?插入20k记录不应该花费10-15分钟。
  • 桌子上有多少个索引?
  • 每条记录有多大?
  • 桌上有什么触发器?
  • 服务器上还有哪些其他操作?
  • 插入记录的来源是什么?
  • 您是否有使用该表的索引视图?

插入速度慢的原因有很多。

答案 2 :(得分:0)

除了检查锁之外还有一些想法

如果存在插入触发器,则禁用任何插入触发器,并在插入中包含逻辑。同时禁用表上的任何索引并重新启用后批量插入。