From 8c4877ff0d8793927a5c7b146dad1d48eccfde4a Mon Sep 17 00:00:00 2001 From: Nicolas Seinlet Date: Mon, 19 Oct 2015 11:43:44 +0200 Subject: [PATCH] [FIX] account_asset: Assets Analysis performance In a real environment with a big dataset, the query reponse time decreased from 750s to 6s, by using a join on the sub-select instead of redoing the select for each line. Fixes #8812 Closes #9128 --- addons/account_asset/report/account_asset_report.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/account_asset/report/account_asset_report.py b/addons/account_asset/report/account_asset_report.py index 254eef720a3..fda00ffa308 100644 --- a/addons/account_asset/report/account_asset_report.py +++ b/addons/account_asset/report/account_asset_report.py @@ -52,9 +52,7 @@ class asset_asset_report(osv.osv): dl.name as name, dl.depreciation_date as depreciation_date, a.purchase_date as purchase_date, - (CASE WHEN (select min(d.id) from account_asset_depreciation_line as d - left join account_asset_asset as ac ON (ac.id=d.asset_id) - where a.id=ac.id) = min(dl.id) + (CASE WHEN dlmin.id = min(dl.id) THEN a.purchase_value ELSE 0 END) as gross_value, @@ -76,10 +74,11 @@ class asset_asset_report(osv.osv): a.company_id as company_id from account_asset_depreciation_line dl left join account_asset_asset a on (dl.asset_id=a.id) + left join (select min(d.id) as id,ac.id as ac_id from account_asset_depreciation_line as d inner join account_asset_asset as ac ON (ac.id=d.asset_id) group by ac_id) as dlmin on dlmin.ac_id=a.id group by dl.amount,dl.asset_id,dl.depreciation_date,dl.name, a.purchase_date, dl.move_check, a.state, a.category_id, a.partner_id, a.company_id, - a.purchase_value, a.id, a.salvage_value + a.purchase_value, a.id, a.salvage_value, dlmin.id )""")