Мне нужно импортировать около 500 000 записей, содержащих данные поиска по IP (только для чтения), примерно раз в неделю (только три столбца типа int / bigint).
Я не хочу беспокоиться о слиянии данных с существующей таблицей, я бы предпочел очистить старую и повторно импортировать.
В идеале запросы, выполняющиеся над данными, продолжали бы выполняться (мы не получаем много из них, и для них приемлемо выполняться немного медленнее, пока происходит импорт, но их необходимо выполнять 24/7, так что выполняйте это » вне часов "не вариант).
Вещи пробовали до сих пор
SSIS: я создал пакет SSIS, который усекает таблицу и импортирует ее - для ее запуска требуется около 30 секунд (на самом деле, это слишком долго).
Temp Table: Импорт в временную таблицу, усечение и копирование также занимает около 30 секунд.
BCP: Массовый импорт также выполняется слишком медленно (по некоторым причинам он медленнее, чем SSIS (даже без индексов для обслуживания) - я предполагаю, что это как-то связано с транзакциями char-> int / bigint: /
Зеркальный столик? Итак, в данный момент я задаюсь вопросом о чтении таблицы через представление, импорте данных в зеркальную таблицу и изменении представления, чтобы указать на эту таблицу ... кажется, что это будет быстро, но кажется крошечным немного хакерский для меня.
Кажется, это должно быть распространенной проблемой, но я не могу найти рекомендуемые методы - любые идеи будут наиболее цениться!
Спасибо
источник