Dima Avdeev
Дата: 21.11.2009 21:31:50
Есть приложение написанное на Дельфи и использующее клиент Оракла 9 для общения с сервером Ораклом 9.
Там раз в месяц возникает необходимость долгого перерасчёта (полтора часа), в пересчёте задача имеет несколько независимых подзадач(пунктов).Сервер многопроцессорный (4 ядра).
При запуске всех задач (в приложении есть кнопка пересчитать по всем пунктам) на сервере загружаеться под завязку один процессор,а остальные три простаивают все полтора часа.
При запуске каждого пункта отдельным приложением каждое ядро сервера нагружается (более 50-70 процентов) и
задача выполняется приблизительно 30 минут, причём последние 10 минут считается самый долгий пункт, остальные уже завершили работу. То есть в три раза как минимум вырастает производительность, если запускать всю задачу параллельно .Причём данные независимы и в каждом таком отдельном пункте.То есть эффективнее всего распараллелить каждый подпункт, чтобы при выполнении любого подпункта скорость выполнения росла. Как распараллелить задачу средствами оракл клиента или может нужно вешать как то на сервер ,чтобы каждая подзадача выполнялась на отдельном процессоре? В первый раз сталкиваюсь с очевидной выгодностью распараллеливания .