Member 11936418 Ответов: 1

Лучший вариант для быстрого чтения всех XML-файлов из папки и обновления базы данных (SQL SERVER 2014)


У меня есть несколько папок, в каждой из которых есть миллионы xml-файлов. Мне нужно прочитать все xml-файлы из этих папок и обновить базу данных, что должно произойти очень быстро.

Что я уже пробовал:

В настоящее время я бросаю несколько потоков в папку и обрабатываю xml-файлы.
Это хорошо работает для меньшего объема, но не для миллионов xml-файлов.
У меня есть несколько высокоприоритетных xml-файлов между этими миллионами xml-файлов, которые я не знаю. Они должны быть быстро обновлены. Поскольку я не знаю, какие файлы имеют высокий приоритет, я вынужден все обновлять.

Область, которую я хочу улучшить, - это обновление процесса базы данных. Когда все потоки пытаются обновить базу данных одновременно, возникает проблема с производительностью.

Любое лучшее решение будет оценено по достоинству.

Mehdi Gholam

Какая часть текущего процесса является медленной?

Richard MacCutchan

Обработка миллионов файлов займет миллионы временных интервалов. А работа в нескольких потоках вряд ли окажет существенное влияние на время обработки.

1 Ответов

Рейтинг:
7

Graeme_Grant

Ваш компьютер имеет только ограниченное количество физических и логических ядер. Только ограниченное число параллельных процессов может быть выполнено. Бросание большего количества потоковых процессов, чем ядер, на проблему может ухудшить производительность, а не улучшить ее. Вам нужно бросить больше оборудования (процессорных ядер), чтобы повысить производительность. Либо более дорогой процессор с большим количеством ядер, либо больше физических компьютеров. Хранение и то, как вы его используете, также может замедлить вас.

Если вы не хотите инвестировать в физическое оборудование, то можете использовать поставщика облачных услуг, например Azure, - платите только за используемое процессорное время. Установите тип машины, количество требуемых машин, а затем дайте ей работать...


Member 11936418

Спасибо @Graeme_Grant. Я полностью согласен с вашим ответом. Это один из вариантов, который я могу рассмотреть в ближайшем будущем, перемещение сервера прямо сейчас для меня нецелесообразно.
То, что я сейчас рассматриваю, - это как ускорить процесс обновления базы данных, когда многие потоки попадают в одну и ту же базу данных.