Acciones
Correccion - Mejora #2837
cerradaOptimización de consultas
Fecha de inicio:
2017-02-28
Fecha fin:
% Realizado:
100%
Tiempo estimado:
3:00 h
Versión:
Descripción
Al hacer una inserción de nuevo gasto de proyecto los logs indican lo siguiente:
SQL (1.6ms) INSERT INTO `gasto` (`agente_id`, `agente_tasa_cambio_id`, `concepto`, `created_at`, `es_valorizado`, `fecha`, `fecha_informe`, `importe`, `impuestos`, `marcado_agente_id`, `marcado_id`, `moneda_id`, `numero_factura`, `observaciones`, `oei_erp_centro_coste`, `oei_erp_cuenta`, `oei_erp_documento`, `oei_erp_importe_divisa`, `oei_erp_importe_moneda`, `oei_erp_seccion`, `orden_factura_agente`, `orden_factura_proyecto`, `pais_id`, `partida_id`, `proveedor_id`, `proyecto_origen_id`, `ref_contable`, `subpartida_agente_id`, `updated_at`) VALUES (8, 1692, 'xxx', '2017-02-28 13:00:17', 0, '2013-04-22 00:00:00', '2013-04-22 00:00:00', 76.0, 0.0, NULL, NULL, 14, 'FAC02_00000142', '(02_00000142) Aprobado con fecha 02/07/2013', '147-1101-001', '2-3-75-10-60-04', '02_00000142', 14.25, 76.0, '', NULL, NULL, 3, 52, 16737, 1760, 'CP011154/2', NULL, '2017-02-28 13:00:17') Marcado Load (0.9ms) SELECT `marcado`.* FROM `marcado` WHERE `marcado`.`automatico` = 1 LIMIT 1 SQL (0.9ms) UPDATE `gasto` SET `marcado_id` = 1 WHERE `gasto`.`id` = 2256545 Etapa Load (0.8ms) SELECT `etapa`.* FROM `etapa` WHERE `etapa`.`agente_id` = 8 AND (fecha_inicio <= '2013-04-22 00:00:00' AND fecha_fin >= '2013-04-22 00:00:00') ORDER BY fecha_inicio LIMIT 1 Gasto Load (1.5ms) SELECT `gasto`.* FROM `gasto` WHERE (agente_id = 8 AND orden_factura_agente > 0 AND fecha >= '2013-01-01' AND fecha <= '2013-12-31') ORDER BY `gasto`.`id` DESC LIMIT 1 SQL (0.8ms) UPDATE `gasto` SET `orden_factura_agente` = 55264 WHERE `gasto`.`id` = 2256545 Proyecto Load (1.2ms) SELECT `proyecto`.* FROM `proyecto` WHERE `proyecto`.`id` = 1760 LIMIT 1 (1702.6ms) SELECT MAX(`gasto`.`orden_factura_proyecto`) AS max_id FROM `gasto` WHERE (proyecto_origen_id = 1760 AND agente_id = 8 ) SQL (1.7ms) UPDATE `gasto` SET `orden_factura_proyecto` = 66 WHERE `gasto`.`id` = 2256545
Es absurdo el tiempo que se tarda en resolver la consulta para determinar "orden_factura_proyecto" y habría que optimizarla.
Actualizado por Santiago Ramos hace más de 7 años
Revisar también los tiempos de búsqueda de una TC y porqué hace búsquedas dobles según la fecha:
SELECT `tasa_cambio`.* FROM `tasa_cambio` WHERE `tasa_cambio`.`etapa_id` = 835 AND `tasa_cambio`.`moneda_id` = 14 AND `tasa_cambio`.`objeto` = 'gasto' AND `tasa_cambio`.`agente_id` IS NULL AND `tasa_cambio`.`pais_id` = 3 AND (fecha_inicio <= '2014-02-28 00:00:00') ORDER BY fecha_inicio DESC LIMIT 1
Esto último no tiene sentido puesto que ya está filtrando por una etapa concreta y no necesita fecha de inicio o de fin.
Actualizado por Santiago Ramos hace más de 7 años
- Categoría establecido a Desarrollo
- Estado cambiado de Nueva a Asignada
- Asignado a establecido a Santiago Ramos
- Versión prevista establecido a 2.54
- Tiempo estimado establecido a 3:00 h
Actualizado por Santiago Ramos hace más de 7 años
- Estado cambiado de Asignada a Resuelta
- % Realizado cambiado de 0 a 100
Cerramos el ticket con los cambios:
y para el plugin OEI_ERP:
Acciones