2017-10-28 52 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觸發器時,如果它們的存在,並納入存在邏輯到您的插件。同時禁用表格中的任何索引並重新啓用後期批量插入。