Я вставляю около 7 миллионов строк в таблицу на SQL Server. Таблица имеет около 9-10 столбцов и имеет clustered index
на 2 ключах (столбцах) и еще 3 unclustered indexes.
. Я пытаюсь сделать высокопроизводительную/объемную вставку данных, но она становится довольно медленной после вставки 3 миллионов записей с дискового использования до 99%. Вот что я сделал для ускорения этого процесса:Вставка данных высокой производительности в SQL Server
1) Отключил все некластерные индексы. Я не отключил 2-х столбчатый кластерный индекс, потому что данные не могут быть вставлены после отключения кластерного индекса?
2) Я использую C# SqlBulkCopy
, чтобы делать объемную вставку из 5000 записей каждый раз.
3) В таблице не имеют каких-либо ограничений и триггеров
Что я должен делать, чтобы ускорить этот процесс вставки данных?
http://stackoverflow.com/q/24200/139010 и http://stackoverflow.com/a/2457862/139010 –
Закажите данные для вставки таким образом, чтобы они были в порядке кластеризованного индекса. – spender
Я не буду опускать ни одного из небрежных комментариев «переключиться на простое восстановление», но сделайте это, только если вы ДЕЙСТВИТЕЛЬНО знаете, что делаете. В противном случае пренебрегайте такими предложениями. – OzrenTkalcecKrznaric