Показать сообщение отдельно
Старый 28.08.2002, 09:15   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Axapta Report Designer vs. Something
И опять я про отчеты. Похожий вопрос я уже затрагивал, когда был недоволен скоростью разработки отчетов в Аксапте, а также неудобством этого дела. Тогда мне сказали, что мол со временем привыкнешь и неудобство исчезнет, а скорость разработки возрастет. Согласен. Привык и к разработке отчетов и скорость их создания увеличилась.

Появилась другая проблема - производительность отчетов. Возьмем очень часто используемый у нас отчет - оборотную ведомость по складу.
Посмотрим как работает отчет: при запуске он выбирает всю необходимую номенклатуру и для каждой выбранной номенклатуры делает по четыре запроса. Возьмем нашу базу данных: количество номенклатуры 25000 сейчас (это только материалы) и плюс еще около 25000 (выпускаемая продукция) в ближайшее время.

25000x4 = 100000 запросов

Кроме того на отчет выводятся единицы измерения и название склада - то есть еще по 2 запроса на каждую номенклатуру.

В итого 300000 запросов сейчас и 600000 запросов в ближайшее будущее на каждую построенную оборотку. А теперь представим, что этот отчет запустили сразу несколько пользователей.
В общем отчет строится около 20 минут.

Теперь посмотрим, что можно сделать. Можно попытаться реализовать этот отчтет в Аксапте по другому, с помощью временных таблиц - тоже выход - время выполнения отчета уменьшилось до 10 минут. Но это же тоже не дело.

Теперь забудем про Аксапту. С помощью любого средства разработки пишем прогу которая посылает на SQL Server эти же четыре запроса, но каждый из них для всей номенклатуры + еще один запрос на join четырех получившихся временных таблиц. Если кого то заинтересует это более подробно, напишите мне - готов объяснить более подробно. Но сейчас суть не в этом. Данная прога строит мне оборотку ровно за 10 секунд. 10 минут и 10 секунд. Есть разница ?

И теперь стою я перед сложным выбором:

* с одной стороны огромный сооблазн переписать все основные отчеты не в Аксапте, тем самым увеличив их производительность
* с другой стороны, сделав так, я получаю дополнительные проблемы с сопровождением этих отчетов.

Хотелось бы услышать Ваше мнение на этот счет. Каким образом Вы получаете отчеты и что Вы думаете насчет построения отчетов не в Аксапте ?