Tuesday, April 2, 2024
1 change · 17.0
Enhancements to existing features
This update significantly speeds up the cash basis balance sheet report by optimizing how the system queries financial data. With large datasets, the report now loads in 4 seconds instead of up to 54 seconds, making financial reporting much faster and more responsive for users.
Original PR description
# Description When opening the balance sheet in the cash basis method, the queries, generated by `_compute_formula_batch_with_engine_domain`, for the report can be slow. The issue is that they filter by date, which can be slower the more data the `temp_account_move_line` table contains. # Fix To speed up these queries, I added a composite index on the date and a few other fields. Since the index is added to a temporary table, it will be removed when the table is dropped. # Benchmark (in 17.0) | Cash Basis | Before | After | |------------|-------:|------:| | 1K | 250ms | 200ms | | 80K | 22s | 4s | | 180K | 30s | 4s | | 280K | 54s | 4s | (In this case, the 4 seconds come mainly from the SELECT for payment_table). # Reference opw-3782652 Forward-Port-Of: odoo/enterprise#59376 Forward-Port-Of: odoo/enterprise#59005