shoorick: (Default)
shoorick ([personal profile] shoorick) wrote2009-12-07 05:45 pm

Ой

Прочитал про отладку в DBIx::Class, включил вывод запросов в лог — ужасаюсь: на отображение одной странички ушло 140 (сто сорок!) запросов (среди них — немало повторяющихся). Даже если СУБД и выдаёт результаты из кэша — это всё равно слишком много. Я, конечно, понимаю, что использование ORM может подразумевать некоторое увеличение использования машинных ресурсов в обмен на экономию времени программиста. Но не до такой же степени!

Вопрос

[identity profile] kikudjiro.livejournal.com 2009-12-07 02:26 pm (UTC)(link)
Иногда в ходе оптимизации приходится как-то "убивать" серии lookup'ов разными prefetch'ами, +select'ами
и усложнением логики.

А вы как оптимизируете? Выносите ли часть логики на уровень базы куда-нибудь в stored procedures или все делаете в рамках pure ORM?

Re: Вопрос

[identity profile] shoorick.livejournal.com 2009-12-07 04:57 pm (UTC)(link)
Да никак не оптимизируем.
Используем pure ORM, потому что основные тормоза всё равно не здесь (или я думаю, что не здесь — подозреваю, что Template Toolkit тормозит).
Пойду домой, читать мануалы...

[identity profile] Костенко Андрей (from livejournal.com) 2009-12-07 04:35 pm (UTC)(link)
серьёзно, прочитайте http://search.cpan.org/~frew/DBIx-Class-0.08114/lib/DBIx/Class/ResultSet.pm#prefetch

Угу

[identity profile] shoorick.livejournal.com 2009-12-07 04:54 pm (UTC)(link)
Почитаю. Спасибо за совет.