ФбП как средство обсчета больших баз



Posted by Олег, Москва on May 31, 1999 at 06:33:33:

In Reply to: Re: Количественные ограничения ФбП posted by Аpкадий Водяник on May 26, 1999 at 02:28:53:

: Олег, Вы сообщили, что делаете сейчас большую pаботу по пеpеносу
: базы в ФБП. Не могли бы Вы pассказать о технических подpобностях?
: Почему было пpинято pешение о пеpеходе? Какой pазмеp базы? С какой
: скоpостью она pаботала в RS-Balance? И т.п.
: Думаю, что это было бы интеpесно посетителям Пункта.

О базе RSB.
База обслуживает торгово-закупочную деятельность достаточно большого торгового дома:

- каталог товаров более 7000 наименований
- каталог клиентов более 14000
- количество сделок в день 150-300
- количество строк в накладных на приход и накладных на отгрузку 60000-80000 в месяц
- размер базы за 1998г более 1.2 Гб
- количество активных пользователей более 30
- пассивных еще столько же
- ядро базы Btrieve
- обслуживается база сервером 166МГц

О скорости работы базы и причинах привлечения ФбП
Со своими прямыми задачами под эпиграфом "клиент должен быть обслужен максимально быстро, но ничто не должно покинуть склада в обход установленных правил ведения бизнеса" RSB справляется очень успешно. Проблемы, которых, как известно, нет в "Финансах без проблем" возникают при обсчете того, что наторговали. Любой отчет, требующий массового обращения к базе, получается очень ресурсоемким и существенно замедляет реакцию системы на поступающие единичные запросы, зато реакция операторов наоборот повышается, в основном в форме нецензурных выражений. Так, например:
- перенос данных из торгового дома в бухгалтерскую базу за месяц может занимать 30-80 мин и сопровождаться потерей и/или искажением цифр
- построение обычной оборотной ведомости иногда доходит до 10 минут

Встала задача об углубленном анализе торговых операций в разрезе товаров, групп товаров, поставщиков, клиентов и групп клиентов... Конечно, можно было бы действовать и в рамках существующей платформы. Но как легко, даже играючи можно манипулировать данными средствами ФбП (особенно, когда они уже туда введены)!
Так возник проект собственно не о замене, а о дополнении существующей платформы инструментом ФбП.

Что из этого получилось (пока)

Ход дела: данные сканируются по интервалам дат в базе RSB, фильтруются и конвертируются в текстовый вид в формат директивы О. Затем средствами частично утилит ФбП, частично собственными производится добавление полученной порции в файлы *.f3p. Информация справочного характера (наименования клиентов и товарных позиций) конвертируются в текст отчетной формы *.RPT, состоящей из последовательности операторов
[SED 'K0287','ООО "Гранит"'],
и затем такая форма однократно выполняется.

В поле комментария перенесенных операций каждой порции заносится штампик о виде операции и ее дате внутри исходной базы, таким образом можно многократно повторять перенос-обновление файлов операций в ФБП, предварительно удалив оттуда все операции с таким-то штампиком.

Процесс программирования: лег в пропорции 95% в RSB 5% в ФбП.

В ФбП прототипов фактов 6шт. Экстрапараметров много, проводок не делается совсем. На диске - только справочная информация. Время сбивки баланса в данном случае не так важно, как время выполнения форм.

Процесс переноса : каждый операционный день из исходной базы выуживается 15-25мин, из текстового вида попадает в структуры ФБП 2-4 мин.

Процесс работы с полученными данными в ФбП (наиболее приятный): на сегодняшний день перенесены данные только за Январь. Сервер (на машине Р-ММХ/233МГц/64МБ ОЗУ) грузится что-то около 50 секунд; самый изощренный анализ за один месяц обсчитывается не более 3-х мин.
Алгоритмы форм пока написаны бегло, имеется большой резерв для оптимизаций.

Узкие места:
- быстродействие в основном определяется скоростью работы с громадным числом экстрапараметров
- длинные формы обсчитываются быстрее, чем затем результат передается клиенту
- операции в ФБП из текстового вида добавляю в ON-Line режиме, и когда в прошлом исчерпываются null, долго идет перезапись большого *.f3p

Выводы
Все очень довольны...

Хотел кратко, а получилось как всегда.

Всем, кто дочитал, дополнительное спасибо!





Пpишедшие ответы: