Я использую SSIS для переноса данных из существующей базы данных в базу данных MDS. Я следую за следующим потоком управления;Вставка таблицы листов в SQL Server MDS очень медленная
- Усекать TableName_Leaf
- Загрузка данных НТГ
Второй шаг имеет следующий поток данных:
1. Загрузка данных из базы данных источника (Это имеет около 90000 записей)
2. Примените задачу преобразования данных, чтобы преобразовать строковый тип данных в Unicode (поскольку MDS поддерживает только Unicode)
3. Укажите TableName_Leaf как назначение OLE DB.
Шаг 1 и 2 завершаются быстро, но вставка в таблицу листов очень медленная. (Чтобы переместить 100 строк до конца, потребовалось 40 секунд и около 6 минут, чтобы переместить 1000 записей.)
Я попытался удалить дополнительные ограничения из таблицы Leaf, но это также не улучшило производительность.
Есть ли другой способ вставить данные в MDS, который быстрее или лучше?
Отбросьте все индексы \ ограничения \ pks, а затем создайте свою вставку (BULK INSERT), это будет намного быстрее. – sagi
Я отбросил ограничения и индексы. Где именно мы указываем вставку как Bulk Insert? –
Чтобы повторить, что sagi сказал более формально, прочитайте статью MSDN «Оптимизация производительности массового импорта» (https://technet.microsoft.com/en-us/library/ms190421 (v = sql.105) .aspx) »и его вспомогательные статьи для многих советов (включая отключение/падение индексов и ограничений). –