[ic] Optimisation Tip

Stefan Hornburg (Racke) racke at linuxia.de
Wed Jul 31 12:55:37 UTC 2013


On 07/31/2013 01:53 PM, Mike Heins wrote:
> 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.
> 

Thanks for the quick fix, Mike!

Regards
	Racke

-- 
LinuXia Systems => http://www.linuxia.de/
Expert Interchange Consulting and System Administration
ICDEVGROUP => http://www.icdevgroup.org/
Interchange Development Team




More information about the interchange-users mailing list