Как лучше всего вставить 350 000 строк с ADO.NET

Пару заметок о вашей ситуации. В отличие от SVN и других традиционных систем управления исходным кодом, Git в первую очередь предназначен для размещения 1 проекта на репо . Это ни в коем случае не является жестким правилом, есть способы разместить исходный код из более чем одного проекта в одном репозитории Git. Но вот две причины, чтобы рассмотреть возможность использования вместо Git subtree или submodule.

1.) Поскольку Git является распределенной системой управления исходным кодом, репозитории могут увеличиваться в размерах гораздо быстрее. Это может сделать клонирование репо большой болью.

2.) Поскольку Git commit - это фиксация всего репо, а не только подпапки, merge в ветке master (или эквивалент) может стать сложной для новичков. И history ветви может быть более сложным, чтобы понять, что действительно изменилось в наборе коммитов.

Может быть полезно дать команде разработчиков полного стека один репо для клонирования, чтобы работать над всем решением. В вашем случае я мог бы рассмотреть репозиторий «host», который содержит subtrees или submodules для репозиториев Git, содержащих различные компоненты решения полного стека. Это позволило бы разработчику сделать один клон и получить полный исходный код.

Я предлагаю использовать submodule, если компоненты тесно связаны и часто меняются синхронно. Используйте subtree, если компоненты интегрируются реже и / или по заданному графику выпуска.

6
задан alchemical 5 April 2009 в 04:50
поделиться

3 ответа

Сделайте класс "CsvDataReader", который реализует IDataReader. Просто реализуйте Read (), GetValue (интервал i), Расположите () и конструктор: можно оставить остальных броском NotImplementedException, если Вы хотите, потому что SqlBulkCopy не назовет их. Используйте чтение для обработки чтения каждой строки и GetValue для чтения значения i'th в строке.

Затем передайте его SqlBulkCopy с соответствующими отображениями столбца, которые Вы хотите.

Я добираюсь, приблизительно 30 000 секунд записей/на вставляют скорость с тем методом.

Если Вы имеете контроль над форматом исходного файла, сделайте его вкладкой разграниченный, поскольку легче проанализировать, чем CSV.

Редактирование: http://www.codeproject.com/KB/database/CsvReader.aspx - tx Mark Gravell.

7
ответ дан 10 December 2019 в 00:44
поделиться

SqlBulkCopy, если это доступно. Вот очень полезное объяснение использования SqlBulkCopy в ADO.NET 2.0 с C#

Я думаю, что можно загрузить XML непосредственно в DataSet и затем отобразить SqlBulkCopy на базу данных и DataSet.

2
ответ дан 10 December 2019 в 00:44
поделиться

Эй необходимо вернуться назад к XML вместо csv, затем загрузить тот XML-файл во временной таблице с помощью openxml, очистить данные во временной таблице и затем наконец обработать эти данные.

Я следовал за этим подходом для огромного импорта данных, где мои XML-файлы, оказывается,> 500 МБ в размере и работах openxml как очарование.

Вы были бы удивлены тем, насколько быстрее это будет работать по сравнению с ручными операторами ado.net.

1
ответ дан 10 December 2019 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: