Как я уже говорил в предыдущем посте, наше приложение Rails должно взаимодействовать с таблицей типа E-A-V в стороннем приложении, из которого мы получаем данные. Я создал View, чтобы сделать данные нормальными, но это занимает слишком много времени для запуска. Один из наших оффшорных разработчиков PHP создал хранимую процедуру, чтобы ускорить ее.
Теперь мы столкнулись с проблемой, которая нам необходима для вызова этой хранимой процедуры из приложения Rails, а также для обеспечения поиска и фильтрации. Представление могло сделать это, потому что Rails рассматривал это как традиционную модель Rails. Как я могу сделать это с сохраненным процессом? Нужно ли нам писать пользовательский поиск и заказ (мы использовали Searchlogic)? Управление не в состоянии понять недостатки использования хранимых процедур от Rails; все, что они говорят, это то, что текущий метод загружает данные слишком долго и требует исправления, но поиск и фильтрация являются критическими функциями.
РЕДАКТИРОВАТЬ Я разместил код для этого запроса здесь: Оптимизация странного MySQL Query . Забавно, что когда я запускаю этот запрос в графическом интерфейсе (Navicat), он выполняется примерно за 5 секунд, но на веб-странице он занимает больше минуты; представление сложное по причинам, которые я обрисовал в первоначальном посте, но я бы подумал, что MySQL оптимизирует и кэширует представления, как это делает SQL Server (или, скорее, то, как я читаю то, что делает SQL Server), чтобы повысить производительность.