У меня есть работающая система, в которой данные периодически вставляются в MS SQL DB, а веб-приложение используется для отображения этих данных для пользователей.Каков самый быстрый способ вставить данные в базу данных MS SQL без его блокировки?
Во время ввода данных пользователи должны иметь возможность продолжать использовать БД, к сожалению, я не могу перепроектировать всю систему прямо сейчас. Каждые 2 часа записываются записи 40k-80k.
Сейчас этот процесс выглядит следующим образом: Таблица
- Temp создается
- данных вставляются в него, используя простые операторы INSERT (параметризованные запросы или хранимые proceuders должны улучшить скорость).
- данных перекачиваются из временной таблицы в таблицу назначения с использованием
INSERT INTO MyTable(...) SELECT ... FROM #TempTable
Я думаю, что такой подход является очень неэффективным. Я вижу, что фаза вставки может быть улучшена (объемная вставка?), Но как насчет передачи данных из временной таблицы в пункт назначения?
Кажется, у меня уже много данных в этой таблице. Кажется, копирование потребует некоторого времени. – artvolk