<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div class="h5">On Fri, Oct 28, 2011 at 12:09:42PM +0400, Михаил Шогин wrote:<br>
> ><br>
> > > Мда, долгая дискуссия.<br>
> > ><br>
> > > ORM - зло!<br>
> > ><br>
> > > Что такое SQL ( в простом определении ) - это то что мы хотим получить и<br>
> > > ПУТЬ получения данных.<br>
> > > При использовании ORM и конструкторов запросов, мы не черта не знаем<br>
> > каким<br>
> > > путем мы получаем данные, а это самое главное.<br>
> > > Как оптимизировать запросы? Как закреплять планы выполнения?<br>
> > > Ведь в каком то случае лучше использовать HASH JOIN, а в каком то NESTED<br>
> > > LOOP.<br>
> > ><br>
> > > Даже банальная фильтрация данных может идти несколькими различными<br>
> > путями:<br>
> > >  - table full scan<br>
> > >  - index range scan + table access by rowid<br>
> > >  - index range scan<br>
> > >  - index full scan<br>
> > ><br>
> > > Как всем этим управлять?<br>
> ><br>
> > Фишка здесь в том что такой микроскоп нужен на 1 из 100 запросов. Хватай<br>
> > голый $dbh из DBIC и делай что хочеш. Ведь нигде не сказано что раз DBIC<br>
> > так всегда DBIC. Надо все таки уметь сообразить когда пора положить молоток<br>
> > и взять отвертку :)<br>
> ><br>
><br>
> Хех, нет, у нас не так. Запросы оптимизируются перед использованием в коде.<br>
> + выставляются хинты для быстрого выявления тормозных запросов.<br>
<br>
</div></div>Хех, ну если для вашей конторы такой уровен premature optimisation привидно<br>
оптавдан (ибо никогда не может быть *реально* оправдан) - то с DBIC, да и<br>
вообще любым генератором вам не по пути :)<br></blockquote><div>Оптимизация становится хорошей привычкой и выполняется как часть процесса ;)</div><div><br></div><div>Точно так же как и в тестировании есть хороший паттерн</div>
<div>Red - Green - Refactor</div><div><br></div><div>имеем и применительно к SQL </div><div>SQL - Explain - Optimisation</div><div><br></div><div>Конечно генераторы пробовали, но поддержка, понимаемость кода падает прямо пропорционально объему последнего.</div>
<div>Но надо сказать, что все это хорошо в случае жестких стандартов оформления Perl, SQL и т.п. </div><div>В этом случае читаешь чужой код ка свой собственный</div><div><br></div></div>-- <br>С уважением<br>Михаил Шогин.<br>