Я наблюдаю странное поведение при использовании Doctrine::getTable() и выполнении запросов с его использованием.
В некоторых случаях накладные расходы практически отсутствуют, а в других случаях накладные расходы составляют более 200 мс при первом вызове Doctrine::getTable() (хотя накладные расходы для последующих вызовов той же таблицы невелики).
Действие работает так.
а. DoctrineTable
вызывается для выполнения запроса (рассматриваемая таблица использовалась для создания файлов модуля действий) с минимальными накладными расходами на table A
b. Форма сохраняется c. DoctrineTable
вызывается для выполнения запроса к несвязанной таблице (table B
) и имеет значительные накладные расходы (200+ мс) d. DoctrineTable
вызывается для другой таблицы (table C
) для выполнения другого запроса практически без накладных расходов
Я попробовал действие с удаленным запросом DoctrineTable
на шаге c, чтобы увидеть, была ли это общая проблема с загрузкой, но запрос на шаге d по-прежнему выполняется с небольшими накладными расходами или без них. Я запускал запросы с использованием Doctrine_Query
непосредственно в действии, чтобы увидеть, имеет ли это значение, и влияние скорости все еще существует.
Неважно, какой запрос в проблемной таблице, там те же накладные расходы/снижение производительности.
Единственная разница с медленной таблицей (table B
) заключается в том, что она имеет версионное поведение, в отличие от других таблиц (table A
и table C
). Может ли это повлиять на скорость первоначального запроса (последующие запросы к этой таблице выполняются быстро после выполнения первого)?