Эффективно ли использовать Марс для обновления 7000 строк? - PullRequest
3 голосов
/ 23 октября 2009

У меня есть сервис для обновления / вставки 7000+ строк с использованием MARS. Есть ли лучший способ сделать это?

1 Ответ

6 голосов
/ 23 октября 2009

Если вы делаете это регулярно, то для этого тома я бы использовал SqlBulkCopy, чтобы передать данные в промежуточную таблицу (та же схема, что и в целевой таблице, но изолированная), а затем использовать хранимую процедуру, чтобы выполнить вставки / обновления (из промежуточной таблицы в фактическую таблицу) - возможно, заключены в транзакцию.

Это позволит свести к минимуму циклические повторы и использовать API массовой вставки для передачи данных.

Если вам не нужно все в одном пакете, другим вариантом будет обработка данных в блоках, скажем, по 100 записей; это должно работать, не заставляя транзакции занимать слишком долго - это будет заметно медленнее, чем подход массового копирования, но имеет преимущество в том, что оно основано на объектах и ​​не требует от вас использования дополнительного набора инструментов / языков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...