Какой лучший способ вставить, обновить пакетные записи из кода позади до ms sql?Вставка пакетной записи
ответ
С точки зрения топок, SqlBulkCopy это самый быстрый способ массовых данных загрузить в SQL Server. Я уже писал о том, как использовать его/продемонстрировали эффективность here - по сравнению с другим подходом, используя SqlDataAdapter отправить пакетные вставки через SqlDataAdapter.Update в сочетании с SqlDataAdapter.InsertCommand.
С точки зрения уточнений, один метод заключается в объеме загрузки данных в «временной» промежуточной таблицы в базе данных с использованием SqlBulkCopy. А затем запустите обновление в своей базовой таблице из этой промежуточной таблицы. В качестве альтернативы вы можете использовать подход SqlDataAdapter.Update в сочетании с SqlDataAdapter.UpdateCommand
Для сырой пропускной способности SqlBulkCopy (только для INSERT) является идеальным способом. Тем не менее, для обработки ошибок с конкретными записями подход SqlDataAdapter хорош, потому что вы можете сказать ему продолжить отправку строк в БД в случае неудачи (например, скажем, что вы получаете ошибку ограничения на конкретную запись, вы можете выбрать ContinueUpdateOnError , а затем в конце определить те, которые сделали ошибку.
Зависит от того, как уровень доступа к данным выглядит. Если вы используете корпоративную библиотеку, я бы сказал, this. И если вы используете linq для sql, то this.
, что о LINQ к SQL? – user335160
Я обновил свой ответ. – IsmailS
это было только пакетного обновления и удаления. – user335160
- 1. Cassandra: Оптимизация пакетной записи
- 2. Вставка данных в sqlite с использованием пакетной обработки в android
- 3. CLASSIC ASP: ВСТАВКА ЗАПИСИ
- 4. Вставка записи через петлю
- 5. Вставка типа записи
- 6. SQL сервер Максимальная вставка предел заявление для пакетной вставки
- 7. Обработка пакетной партии весов
- 8. Откат в пакетной обработке
- 9. Linq to Entity - Вставка записи
- 10. Вставка произошла при обновлении записи
- 11. DetailsView: вставка/обновление одной записи
- 12. Вставка записи в Hive, добавив
- 13. Вставка записи с использованием Ajax
- 14. Вставка записи с использованием DataAdapter
- 15. Безопасный режим для пакетной вставки
- 16. Возможно ли иметь смешанную перезапись/добавление пакетной записи в MySQL?
- 17. Как узнать, сколько строк для пакетной записи питона
- 18. Динамический sql для пакетной обработки
- 19. Обработка исключений пакетной вставки JDBC
- 20. Вставка записи по итерации создает записи в нерегулярном порядке
- 21. Linq To Sql Вставка записи с новой связанной записи
- 22. Поддержание текущей переменной во время пакетной вставки
- 23. Как использовать функцию асинхронной записи/пакетной записи с драйвером Java Datastax
- 24. Повторная вставка записи в ExtJS магазин
- 25. Вставка записи во время цикла внутри курсора
- 26. Rails консоли Вставка данных в записи
- 27. Вставка новой записи с помощью хранимой процедуры
- 28. Вставка записи в базу данных доступа
- 29. mySQL-> Обновление/вставка "соединение" записи
- 30. LINQ: вставка и обновление прозрачной записи
Привет сэр, спасибо, это MS SQL 2008 способен принимать параметр сильно типизированных список объектов, например List .Becuase Я думаю, что 2k8 способен проходить тип параметра DataTable –
user335160
@crisgomez -. 2k8 SQL Server не поддерживает таблицы значение параметров - так что вы можете передать в таблице данных. Я также писал об этом метод (сравнивая его с CSV и XML подходов): http://www.adathedev.co.uk/2010/02/sql-server-2008-table-valued-parameters.html По сравнению с SqlBulkCopy и т.д., я не знать, что такое производительность для реальных объемных данных - было бы что-то для сравнения, он мог бы поразить tempdb больше – AdaTheDev
, а что касается строго типизированного списка объектов, например List, может ли ms sql 2k8 передать это? –
user335160