Добавление выписки из Российского плана нумерации Россвязь в базу MSSQL

Материал из Oktell
Перейти к: навигация, поиск

Наверх

Цель: импортировать данные из текстовых файлов в БД.

В качестве исходных данных используем базы номеров с сайта: Реестр российской системы и плана нумерации

1)Коды ABC-3х (HTML, 2,6Mb)
2)Коды ABC-4х (HTML, 9,6Mb)
3)Коды ABC-8х (HTML, 4,3Mb)
4)Коды DEF-9х (HTML, 0,7Mb)

По состоянию на 30.11.2012г.

Рассмотрим 3 способа решения задачи:
1) Обработка каждого тега в файле
2) Обработка построчно
3) Обработка сразу всего файла

ВНИМАНИЕ! Необходимая версия Oktell после 25 декабря 2012 Release. При импорте сценария необходимо указать путь до файла с расширением (например: C:\ABC-3x.html)


1.Обработка каждого тега в файле:

Происходит подсчет определенного тега в файле в котором находятся необходимые данные. Далее содержимое каждого из них записываем в переменную. После этого с помощью SQL запроса добавляем строку в БД.

Parse light.jpg

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

Плюсы:
-Простота реализации
Минусы: 
-Большое время выполнения


2. Обработка исходных данных построчно.

Обработка файла происходит построчно. Получаем одну строку из файла и затем обрабатываем каждый тег, который она содержит:

Parse middle.jpg

Выполнение так же происходит в цикле, при этом обработанную строку удаляем, затем повторяем операции. За счет того, что «Парсер» выполняется только для обработки одной небольшой строки, время выполнения сокращается. Рекомендуется использовать данный метод т.к. память сервера расходуется незначительно.

Плюсы:
-значительное ускорение выполнения
-простота реализации
-возможность выгрузки данных удобным способом(Файл,БД)
Минусы:
замечаний в процессе тестирования не обнаружено

3. Обработка сразу всего файла

Зная структуру документа, можно обработать его используя операции со строковыми переменными, что позволяет отправить на запись в БД сразу же один запрос, не используя цикл:

Parse heavy.jpg

Вместо запроса можно произвести операцию записи в файл, но тогда требуется задание пользовательского форматирования. Что усложняет работу нежели во втором сценарии.

Плюсы:
-Сверхбыстрое выполнение сценария
-Компактность сценария(малое кол-во элементов)
Минусы:
-Незначительное усложнение в составлении запросов
-Большой объем требуемой памяти при выполнении (зависит от исходных данных)

  1. Служебный сценарий "Обработка каждого тега в файле"
  2. Служебный сценарий "Обработка исходных данных построчно"
  3. Служебный сценарий "Обработка сразу всего файла"