У меня есть. CSV-файл, который поворачивается в 6 миллионов строк во время пакета SSIS. У меня есть таблица в SQLServer 2005 из 25 миллионов + строк. Файл .csv имеет данные, которые дублируют данные в таблице, возможно ли, чтобы строки обновлялись, если они уже существуют или что было бы лучшим способом для достижения этой эффективности?Можно ли перезаписать вставку SSIS или подобное?
ответ
Сравнение строк 6м с 25-метровыми рядами не будет слишком эффективным с помощью поиска или компонента потока данных SQL-команды, вызываемого для каждой строки, чтобы выполнить upsert. В этих случаях иногда наиболее эффективно быстро загружать их в промежуточную таблицу и использовать одну командную команду SQL для выполнения upsert.
Даже если вы решите выполнить поиск - разделите поток на два потока, один из которых вставляет, а другой, который вставляет в промежуточную таблицу для операции обновления.
Если вы не против потери старых данных (то есть последний файл имеет значение, а не то, что находится в таблице), вы можете удалить все записи в таблице и вставить их снова.
Вы также можете загрузить временную таблицу и определить, что нужно обновить и что нужно вставить оттуда.
Вы можете использовать задачу поиска, чтобы идентифицировать любые соответствующие строки в CSV и таблице, а затем передать результат этого в другую таблицу или поток данных и использовать задачу SQL для выполнения требуемого обновления.
- 1. Можно ли удалить или перезаписать командлеты?
- 2. Можно ли перезаписать значения флагов?
- 3. Можно ли перезаписать User.objects.delete в Django?
- 4. Java: можно ли создавать множество методов или что-то подобное?
- 5. Можно ли перезаписать переменную в другом файле
- 6. Можно ли ускорить эту вставку mysql?
- 7. Можно ли перезаписать значение действия в форме?
- 8. Можно ли перезаписать методы stutout для PHPUnit?
- 9. Можно ли перезаписать неопределенный в javascript?
- 10. Objective-C Можно ли перезаписать [NSObject initialize]?
- 11. Процесс SSIS, имеющий вставку, блокирующую выделенную таблицу
- 12. Есть ли WM_QUERYHIDE/CLOSE или подобное сообщение?
- 13. Свободное термопланирование или подобное?
- 14. Перезаписать данные в excel с помощью SSIS
- 15. Нужно ли использовать вставку или внутреннее соединение?
- 16. WPF: Можно ли добавлять или изменять привязки через стили или что-то подобное?
- 17. Можно ли экспортировать/импортировать Project.params в SSIS?
- 18. Можно ли подключить JDBC через SSIS?
- 19. Можно ли удалить пакет в каталоге SSIS?
- 20. Можно ли сделать что-то подобное с помощью jQuery?
- 21. Перезаписать или переопределить
- 22. Можно ли использовать символьный макрос, чтобы получить поведение, подобное меткам?
- 23. Возможно ли создать MultiTrigger или (или подобное) для небулевых свойств?
- 24. Как можно перезаписать текущий файл?
- 25. Можно ли запускать всплывающее окно, подобное окнам из UIWebView?
- 26. Можно ли объединить подобное содержимое в один массив?
- 27. Можно ли поймать подобное событие со страницы Facebook?
- 28. Можно ли сделать что-то подобное в МЕНЬШЕ?
- 29. static_message или что-то подобное
- 30. можно ли отключить вставку javac статических конечных переменных?
Очень хорошая точка, задача поиска, вероятно, будет медленной с таким количеством строк. Staging & SQL - хороший вариант. – grapefruitmoon 2010-11-23 16:46:42