[ic] Optimisation Tip
Mike Heins
mike at perusion.com
Wed Jul 31 11:53:07 UTC 2013
Quoting Stefan Hornburg (Racke) (racke at linuxia.de):
> On 07/30/2013 10:47 PM, IC wrote:
> > Hi Folks,
> >
> > Whilst trying to optimise IC for speed today I noticed a slow sql query
> > every time an order was updated, I eventually traced it to /etc/ship_notice
> >
> > This loop tag:-
> >
> > [loop prefix=item search="
> > fi=orderline
> > st=db
> > sf=order_number
> > se=[loop-code]
> > ml=1000
> > "]
> >
> > Produces an sql query of select * from orderline;
> >
> > If the orderline table has a few hundred thousand rows it returns them all
> > and causes quite a delay, I replaced it with:-
> >
> > [query
> > prefix=item
> > sql=|select * from orderline where order_number = '[loop-code]'|
> > type=list
> > ]
> > [item-list]
> >
> > Then used [item-param column_name] for the columns in the email, now its
> > lightning quick at updating an order.
> >
>
> Do you mind to produce a patch or even a Github pull request to get
> this into the Interchange repository?
I think that introducing co=1 and op=eq into the search spec will have
the same effect, i.e..
[loop prefix=item search="
fi=orderline
st=db
sf=order_number
se=[loop-code]
co=1
op=eq
ml=1000
"]
That may not be as intuitive as the query, but when mv_coordinate (co) = 1 and
the spec is an eq, it generates that query as the initial search selection.
I have made that patch for now, so if it is verified to work
then we can use it.
--
Mike Heins
Perusion -- Expert Interchange Consulting http://www.perusion.com/
phone +1.765.253.4194 ... Ask me about jobs ...
Fast, reliable, cheap. Pick two and we'll talk.
-- unknown
More information about the interchange-users
mailing list