Correccion - Mejora #5042
abiertaProblemas de rendimiento en vista (SQL) de gastos
0%
Descripción
La vista de gastos tarda bastante tiempo en ejecutarse, lo que provoca lentitud en la generación del resumen de gastos de proyecto.
Por ejemplo, la ejecución de un SQL asociado a la vista resulta en:
MariaDB [gesproei_produccion]> SELECT partida_proyecto_id as fila_id, sum(importe_moneda_base) as importe FROM `v_gasto` WHERE `v_gasto`.`proyecto_id` = 2109 AND `v_gasto`.`financiador_id` = 469 AND (`v_gasto`.`fecha` BETWEEN '2017-03-17' AND '2023-07-31') GROUP BY proyecto_id, partida_proyecto_id; +---------+-----------------------------------------+ | fila_id | importe | +---------+-----------------------------------------+ | 55232 | 135548200.0000000000000000000000000000 | | 55242 | 6400000.0000000000000000000000000000 | | 55243 | 2523641524.0000000000000000000000000000 | | 55245 | 218025666.0000000000000000000000000000 | | 55249 | 63673765.0000000000000000000000000000 | | 55250 | 5482700.0000000000000000000000000000 | | 55257 | 149800593.0000000000000000000000000000 | +---------+-----------------------------------------+ 7 rows in set (16,617 sec)
Pero luego, para cada partida se hace un recorrido por las subpartidas definidas en el proyecto (en el mejor caso, para los gastos que no tienen subpartida asociada):
MariaDB [gesproei_produccion]> SELECT sum(importe_moneda_base) as importe FROM `v_gasto` WHERE `v_gasto`.`proyecto_id` = 2109 AND `v_gasto`.`partida_proyecto_id` = 55249 AND `v_gasto`.`financiador_id` = 469 AND (`v_gasto`.`fecha` BETWEEN '2017-03-17' AND '2023-07-31') AND `v_gasto`.`subpartida_id` IS NULL LIMIT 1; +---------------------------------------+ | importe | +---------------------------------------+ | 63673765.0000000000000000000000000000 | +---------------------------------------+ 1 row in set (16,238 sec)
Por lo tanto, la consulta completa del informe se demora demasiado.
Actualizado por Santiago Ramos hace alrededor de 1 año
Una posible solución, si no se consigue acelerar las consultas, es poner un check "obtener saldos por subpartidas" que esté desactivado por defecto. De esa forma, la generación inicial sería mucho más rápida al incluir solo del total por partidas (la primera consulta) y si se quisiera el informe con subpartidas (menos usado) sería necesario indicarlo.
Actualizado por Santiago Ramos hace alrededor de 1 año
- Versión prevista cambiado de 4.11 a 4.12
Actualizado por Santiago Ramos hace alrededor de 1 año
- Versión prevista cambiado de 4.12 a 4.13
Actualizado por Santiago Ramos hace 12 meses
- Prioridad cambiado de Normal a Urgente
Actualizado por Santiago Ramos hace 10 meses
- Versión prevista cambiado de 4.13 a 4.14
Actualizado por Santiago Ramos hace 9 meses
- Versión prevista cambiado de 4.14 a 4.15
Actualizado por Santiago Ramos hace 9 meses
- Versión prevista cambiado de 4.15 a 4.16
Actualizado por Santiago Ramos hace 8 meses
- Versión prevista cambiado de 4.16 a 4.17
Actualizado por Santiago Ramos hace 5 meses
- Versión prevista cambiado de 4.17 a 4.18
Actualizado por Santiago Ramos hace 3 meses
- Versión prevista cambiado de 4.18 a 5.01
Actualizado por Santiago Ramos hace alrededor de 2 meses
- Versión prevista cambiado de 5.01 a 5.02
Actualizado por Oscar Abad hace 17 días
- Versión prevista cambiado de 5.02 a 5.03