Я работаю над программой для автоматического поиска оптимальных назначений смены с учетом множества ограничений. Я использую grails , т.е. данные о работниках, сменах и назначениях будут храниться в СУБД.
Для самой оптимизации мне придется очень интенсивно работать с небольшим подмножеством данных (всего около 600 строк из примерно 5 разных таблиц). Мне придется перебирать и искать в различных подмножествах десятки раз, чтобы вычислить пригодные функции, изменить некоторые значения, снова вычислить пригодность, вспенить, промыть, повторить, возможно, сотни раз.
Теперь, хотя поиск и итерация - это именно то, для чего нужна СУБД, я считаю, что в этом случае издержки сотен запросов к БД могут затмить реальную работу, даже для СУБД в памяти, такой как HSQLDB. Таким образом, вместо этого я планирую вначале поместить все подмножество в память, построить свои собственные индексы (в основном HashMap) для поиска, который мне придется делать, и затем работать только с теми, которые остаются в стороне от БД до Я закончил и записал в него свой результат.
Это разумный подход? Есть идеи получше?