Форум компании "ОМЕГА"

Программные продукты серии ABACUS => ABACUS Professional => Тема начата: Taras от 09 Мая 2011, Понедельник, 02:18:55



Название: Быстродействие функции SprFindObj
Отправлено: Taras от 09 Мая 2011, Понедельник, 02:18:55
Почему скорость работы Справочной функции SprFindObj при поиске номера организации, к примеру по ИНН, в сотни раз медленнее аналогичного запроса через функцию Look Up? При этом работа функции SprFindObj сопровождается мерцанием экрана. Тестировалось в версии 3.0721SP5 при формате баз Btrieve и MS SQL. Справочник организаций нового формата -с поддержкой историчности атрибутов. Прилагаю тестовую СБД демонстрирующую впечатляющую разницу в скорости.


Название: Re:Быстродействие функции SprFindObj
Отправлено: Александр Плотников от 11 Мая 2011, Среда, 12:29:18
Почему скорость работы Справочной функции SprFindObj при поиске номера организации, к примеру по ИНН, в сотни раз медленнее аналогичного запроса через функцию Look Up? При этом работа функции SprFindObj сопровождается мерцанием экрана. Тестировалось в версии 3.0721SP5 при формате баз Btrieve и MS SQL. Справочник организаций нового формата -с поддержкой историчности атрибутов. Прилагаю тестовую СБД демонстрирующую впечатляющую разницу в скорости.
Спасибо за хорошо поставленный вопрос.
Замедление, в основном, происходит из-за того самого мерцания экрана. На самом деле это просто отображение и удаление окна с сообщением "Подождите" в каждом вызове функции SprFindObj. В тестовом примере в цикле выполняется 100 вызовов SprFindObj, поэтому 100 окошек "Подождите" создается и удаляется. На каждом поиске теряется доля секунды, которая на множестве записей превращается в ощутимую задержку.
---
Конечно, если ведется пакетная обработка множества организаций, то это окно "Подождите" желательно не выводить. В список параметров вызова SprFindObj будет добавлен еще один, который, если равен 1, будет подавлять отображение окошка "Подождите". Кроме того, будет оптимизирован конкретно поиск по ИНН. Эта доработка будет включена в ближайшее обновление ПК Абакус.


Название: Re:Быстродействие функции SprFindObj
Отправлено: Taras от 14 Июня 2011, Вторник, 10:13:09
Вышла новая версия 3.0730SP1. Подскажите пожалуйста, как пользоваться описанной выше доработкой функции SprFindObj ?


Название: Re:Быстродействие функции SprFindObj
Отправлено: Александр Плотников от 14 Июня 2011, Вторник, 10:22:41
Вышла новая версия 3.0730SP1. Подскажите пожалуйста, как пользоваться описанной выше доработкой функции SprFindObj ?
Если в редакторе СБД кликнуть правой кнопкой мыши по имени функции SPRFINDOBJ, откроется окно с подробным описанием ее параметров. 10-й из них и есть тот самый, что подавляет вывод окна "Подождите...". Если пользоваться Вашим примером, вызов SPRFINDOBJ выглядит так:
   Var9 =+SPRFINDOBJ(1,1,,,7706201281,,,,,1)
Вот эта последняя единица как раз и подавляет вывод окна.