2015-06-12 9:43 GMT+02:00 Cédric Krier <[email protected]>:

> On 2015-06-11 21:55, Cédric Krier wrote:
> > On 2015-06-11 21:37, Jordi Esteve wrote:
> > > On 11/06/15 21:10, Cédric Krier wrote:
> > > >>By the way, the default option in the new parameter 'target_search'
> for m2o
> > > >>fields is 'subquery'. Maybe is it better to set 'join' by default?
> If not,
> > > >>then the m2o relations suspected to have a lot of records like move
> lines,
> > > >>invoice lines, sale lines, stock moves, ... should have the 'join'
> parameter
> > > >>set in the tryton modules?
> > > >I will explain why I kept 'subquery' as default. On small database,
> > > >there will be almost no difference with the 'join'. On larger
> database,
> > > >in many cases the query planner could infer the 'join' if it worths it
> > > >base on its statistics. But the 'in' join could be worse on specific
> > > >case.
> > >
> > > If on small database there is almost no difference between the two
> methods
> > > and on larger databases the 'in' joint is worse, I don't see the
> advantage
> > > to keep the 'subquery' method as the default one.
> > >
> > > I make the question in another way: Which are the advantages of using
> > > 'subquery' method instead of 'join' method?
> >
> > They are faster if the target table is small.
> > And I bet that we have more small table than big one because small table
> > are the referential while big table are the operational and I think we
> > have much more referential Model than operational (we try to reuse the
> > operational).
>
> I made some tests and indeed joins even on large table are not so
> expensive if there is a where clause that reduces a lot the rows to join
> on because pg can filter before doing the join.
> So I made 'join' the default target_search method.


good job
-- 
Guillem Barba
http://www.guillem.alcarrer.net

Reply via email to