【发布时间】:2013-06-10 16:32:39
【问题描述】:
我在 SQL Server 的一个表中插入了大约 700 万行。该表有大约 9-10 列,它在 2 个键(列)上有一个 clustered index 和另外 3 个 unclustered indexes. 我正在尝试执行高性能/批量插入数据,但插入 3 后它变得很慢万条记录,磁盘使用率高达 99%。以下是我为加快此过程所做的工作:
1) 禁用所有非聚集索引。我没有禁用2列聚集索引,因为禁用聚集索引后无法插入数据?
2) 我每次使用 C# SqlBulkCopy 批量插入 5,000 条记录。
3) 表没有任何约束和触发器
我应该做些什么来加快这个数据插入过程?
【问题讨论】:
-
对要插入的数据进行排序,使其符合聚集索引的顺序。
-
我不会对任何粗心的“切换到简单恢复”的 cmets 投反对票,但只有在您真正知道自己在做什么时才这样做。否则无视此类提议。
标签: c# sql sql-server database sql-server-2012