При вставке в таблицу менее 1350 000 строк это занимает около 2 минут, однако, если количество вставленных строк больше, время, необходимое для вставки данных, увеличивается до 5 часов.
Проблема не связана с запросом или индексами, потому что все давно работает нормально и ничего не изменилось в структуре запроса, таблиц или индексов.
Проблема появилась впервые около 2 недель назад, и она появляется неоднократно в те дни, когда количество вставленных строк превышает + -1 350 000. Например, в один день количество вставленных строк составляет 1 200 000, а процесс занимает 2 минуты, в другой день количество строк составляет 1 450 000, а вставка данных занимает 5-6 часов.
Я пытался перестроить индексы, но это не помогло.
sql-server
Петр
источник
источник
Ответы:
Я предполагаю, что, если вы на самом деле не заблокированы, вы достигли порога, выше которого должен расти файл данных (и / или файл журнала), и что ваша конфигурация не оптимизирована для поддержки этого роста. Обеспечить, что:
источник
Может ли это быть проблема с памятью?
Такое поведение может наблюдаться, если какой-то кусок данных, к которым необходимо неоднократно обращаться, становится слишком большим для памяти, и вы получаете из-под ажиотажа диск. Если вам приходится перебирать кусок данных, который слишком велик для памяти, вы в конечном итоге получаете все данные, считываемые обратно из файла подкачки за каждый проход, и превышение этого предела может привести к падению производительности с обрыва.
источник
Вы пытаетесь / можно ли разделить их на более мелкие партии? Когда я столкнулся с подобной проблемой, группировка их по 5.000 (с GO) действительно сократила время, необходимое для выполнения такой задачи.
источник