2017-10-28 39 views
0

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

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

使用等待统计数据
+0

你如何插入记录?一行一行地? –

回答

1

性能调优是你case..below一个好方法是几步我会做

第一步:
运行插入查询

第二步:
打开另一个会话并运行下面

select * from sys.dm_exec_requests 

现在状态和w AIT类型列应该给你什么是你的下一个步骤

防爆足够的信息: 如果状态被阻塞(通常插入不会被阻塞),检查阻塞查询,看看它为什么被封锁

上面只是一个例子,在线上有更多关于您可能遇到的任何等待类型的信息

+0

谢谢Thegameiswar。 – Priyaa

0

我对超速插入的建议是对临时表执行批量插入,然后将单个插入到最终表中。

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

在任何情况下,你的问题留下大量的重要信息不明原因:

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

插入可能会变慢的原因很多。

+0

感谢gordon.records通过dataload插入,有时从一张表插入到主员表中。 。那里只有一个索引。 – Priyaa

0

除了对锁

检查

一些想法禁用任何关于INSERT触发器时,如果它们的存在,并纳入存在逻辑到您的插件。同时禁用表格中的任何索引并重新启用后期批量插入。