#sql-server #import #bulk
#sql-server #импорт #массовая
Вопрос:
У меня есть несколько экспортированных строк, которые я хочу импортировать в базу данных, которая в данный момент запущена. Должен ли я отключить приложение, которое взаимодействует с базой данных перед выполнением массовой вставки, чтобы BI был единственной выполняемой операцией?
Я предположил, что это было бы наилучшей практикой, но просто хотел уточнить у сообщества.
Большое спасибо!
Комментарии:
1. Зависит от того, чего вы пытаетесь достичь.
Ответ №1:
Обычно я бы не стал отключать какое-либо другое приложение, использующее базу данных. Для меня массовая загрузка — это просто еще один клиент базы данных, и на нее распространяются обычные механизмы параллелизма / изоляции.
Есть исключения, когда массовая загрузка является частью какого-либо длительного процесса выпуска или процедуры обслуживания, и в этом случае время все равно истекает
Однако я всегда использую промежуточную таблицу для загрузки данных. После обработки, очистки, поиска ключей и т.д. Я бы сбросил данные в оперативную таблицу за одну атомарную операцию. Другими словами, я бы не стал смешивать массовую загрузку с другим доступом к таблице: я бы буферизовал массовую загрузку через промежуточную таблицу
Комментарии:
1. Спасибо за это. Просто небольшой вопрос, какой метод вы бы использовали для перемещения данных из промежуточной таблицы? Вы бы использовали инструкцию insert с инструкцией select для перемещения данных из одной таблицы в другую?
2. @paul: да. Но это была бы одна ВСТАВКА: вся остальная работа была бы выполнена в промежуточной таблице (например, поиск ключей)