Inscripción a Cursos Lenta

Hola! estoy haciendo unas pruebas con el perfil de Cursos, y me encuentro que la solapa Inscripción a Cursos se pone muy lenta. EL plan de la propuesta en cuestion tiene muchos cursos, ya que se viene usando hace un par de años. Revisando el log de la aplicación veo que la consulta que trae los datos de las comisiones demora mucho y no usa el cache… Se esta demorando entre 12 y 15 segundos en devolver los datos.

¿hay forma de acelerar esta consulta o hacer que use el cache o algo?

La consulta en cuestion segun el log, seria esta:

– CATALOGO: cursos/actividades_propuestas_administran_cursos_con_comisiones_vigentes | cache [false] - tipo [no]

Array
(
[parametros] => Array
(
[propuesta_curso] => ‘37’
)

[metadata] => Array
    (
        [parametros] => Array
            (
                [0] => propuesta_curso
            )

        [cache] => no
        [filas] => n
    )

[force_cache] => Array
    (
    )

)

– SQL -----------------------------------------------------------------------

        SELECT  vw_actividades_plan.elemento,
                vw_actividades_plan.codigo,
                vw_actividades_plan.nombre,
                vw_actividades_plan.nombre_abreviado,
                vw_actividades_plan.propuesta,
                vw_actividades_plan.plan,
                vw_actividades_plan.plan_version
        FROM sga_propuestas
             JOIN vw_actividades_plan ON (sga_propuestas.propuesta = vw_actividades_plan.propuesta)
        WHERE
        sga_propuestas.propuesta = '37'
        AND sga_propuestas.estado = 'A'
        AND vw_actividades_plan.plan IN (SELECT sga_planes.plan FROM sga_planes WHERE propuesta = sga_propuestas.propuesta AND administra_cursos = 'S')
        AND vw_actividades_plan.estado = 'A'

        GROUP BY vw_actividades_plan.elemento,
                vw_actividades_plan.codigo,
                vw_actividades_plan.nombre,
                vw_actividades_plan.nombre_abreviado,
                vw_actividades_plan.propuesta,
                vw_actividades_plan.plan,
                vw_actividades_plan.plan_version

		HAVING 	vw_actividades_plan.elemento IN    
         (SELECT * FROM f_actividades_con_comisiones_vigentes(vw_actividades_plan.propuesta, vw_actividades_plan.plan, vw_actividades_plan.plan_version, true, null))           

		ORDER BY vw_actividades_plan.nombre

Saludos!

Hola Diego, gracias por reportarlo!!!

Vamos a ver si para la próxima versión le agregamos cache a estas queries.

Por ahora podes personalizar dicha función agregándole cache, quedaría algo así:

src/pers//modelo/datos/db/cursos.php


/**
     * parametros: propuesta_curso
     * cache: memoria
     * cache_expiracion: 360
     * filas: n
     */
    function actividades_propuestas_administran_cursos_con_comisiones_vigentes($parametros)
    {
        return parent::actividades_propuestas_administran_cursos_con_comisiones_vigentes($parametros);
    }

Donde se cambia “cache” a “memoria”, y se agrega un tiempo de espiración de 360 segundos (6 minutos), si no se especifica “cache_expiracion” por defecto son 300 segundos (5 minutos).

Luego de esto, hay que correr el comando bin/guarani generar_catalogo

Saludos.

Muchas gracias Leonel! Hice como me indicas y ahora vuela!! Será cuestion de encontrar un valor de cache adecuado al uso y listo.
Saludos!

Hola Diego, me alegro que ahora les funciona bien!!!

Nosotros ahora vamos a crear un ticket para solucionarlo en la próxima versión. Les vamos a pedir que creen un GDS, así lo asociamos a dicho ticket, y le podemos enviar una solución mas integral a este problema.

saludos.