Показать сообщение отдельно
Старый 13.01.2009, 10:52   #1  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от Marisha Посмотреть сообщение
rmv: частично я так и делаю. Медленно. С FlowField гораздо быстрее, но не все подходящие FlowField есть, а создавать дополнительные при данном объёме базы как-то не хочется. Почему частично. Потому, что есть данные, сбор, которых зависит от информации, которая находится в другой таблице. Т. е. фольтровать не могу.
С таким объемом неудивительно. Если расчет по опорной таблице с calcfields происходит гораздо быстрее нежели find('+') и calcums, возможно проблема в низкой селективности используемого ключа.
Иначе говоря основной время ухолит на find('+').
С linked object медленно не будет, но простая группировка думаю Вас не спасет. Как вариант предлагаю построить расчетные поля в linked object на тех же flow фильтрах.
К примеру - требуется получить себестоимость в разрезе товар, склад, первое измерение:
1. Строите запрос с group by по требуемым полям и цепляете к Наву.
2. Дополнительно определяете flow фильтры и flow поля на книгу операций.
Результат - имеем новую опорную таблицу с необходимым срезом данных, в которой будем считать "быстрыми" calcfields.
Третий вариант (пожалуй самый быстрый) - динамически формировать sql запрос и выводит данные из него