Как быстро найти данные, хранящиеся в файле XML в большом количестве каталогов? - PullRequest
1 голос
/ 11 августа 2010

Проект, над которым я работал в течение прошлого года, записывает файлы журналов на сетевой диск каждый раз, когда выполняется задача.В настоящее время у нас есть около 1300 папок с несколькими файлами и папками.Важным моментом здесь является то, что в каждой папке в среднем содержится 3-4 файла XML, которые содержат серийные номера и другие идентифицирующие данные для наших продуктов.Раньше было просто использовать поиск файлов Windows, но теперь поиск может занять более 10 минут.Возникла необходимость в просмотре / поиске логов, и мне нужно выяснить, как сделать это быстро.Мы рассматриваем ряд идей.Один из них - локально хранящийся XML-файл индекса, но я думаю, что со временем он станет слишком большим, чтобы быть быстрым.Второе - создать службу наблюдения за папками, которая будет записывать информацию индекса в базу данных SQL и ссылаться на файлы.Третья идея состояла в том, чтобы программа, записывающая файлы журнала, также записывала информацию индекса в базу данных.Второй вариант базы данных сейчас звучит как лучший вариант, так как у нас уже есть куча истории, которую нужно проиндексировать, но для меня это звучит немного запутанно.Итак, мой вопрос вкратце: как я могу быстро найти информацию, содержащуюся в файлах XML, в большом и постоянно растущем количестве каталогов?

1 Ответ

1 голос
/ 30 августа 2010

В итоге мы использовали базу данных SQL для этого по многим причинам:

  1. Он поддерживал намного более быстрое время запросов при моделируемом 10-летнем росте данных (1,5-2,2 млн записей по-прежнему имели менее 2 секунд), чем XML (около 20-30 секунд).
  2. Приложение может напрямую публиковать данные в базе данных, что устраняет необходимость в поисковике (кроме исходных данных).
  3. Возможны проблемы с блокировкой файлов, если мы решим разместить файл где-нибудь в сети.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...