Proyecto

General

Perfil

Acciones

Correccion - Mejora #5042

abierta

Problemas de rendimiento en vista (SQL) de gastos

Añadido por Santiago Ramos hace alrededor de 1 año. Actualizado hace 20 días.

Estado:
Nueva
Prioridad:
Urgente
Asignado a:
-
Categoría:
Desarrollo
Versión prevista:
Fecha de inicio:
2023-09-04
Fecha fin:
% Realizado:

0%

Tiempo estimado:
Versión:

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.

Acciones

Exportar a: Atom PDF