error al reasignar optativas

Hola, estamos trabajando con la versión 3.16 y un usuario nos resportó que desde gestión cuando va a la operación Reasignar optativas y selecciona al alumno se queda procesando y da time out. Probamos ejecutar la operación en todos los ambientes y nos oscurrió el mismo error.
Revisando el código vimos que se ejecuta la funcion get_actividades_genericas_con_optativas_compartidas de la clase co_planes (no está personalizada) y es ese el método que tarda en ejecutarse. Probamos hacer la consulta directamente desde el motor de base de datos y paso lo mismo.
El volumen que manjeamos por ejemplo en el plan de estudios que da el error es de 5 actividades genericas,
generica 1: 200 optativas
generica 2: 200 optativas,
generica 3: 6 optativas,
generica 4 : 17 optativas
generica 5: 40 optativas

Entre la 1 y la 2 comparten y entre las 3 y la 4 comparten .
La consulta la revisó el dba y al parecer no falta ingùn indice en las tablas utilizadas.

Saludos,
Naimid

Hola Naimid,

Por favor, prueben con esta consulta SQL a ver qué pasa:

SELECT	DISTINCT vw_actividades_genericas_plan.elemento,
		vw_actividades_genericas_plan.elemento_revision,
		vw_actividades_genericas_plan.nombre,
		vw_actividades_genericas_plan.nombre_abreviado,
		vw_actividades_genericas_plan.codigo,
		sga_elementos_revision.regla,
		sga_elementos_revision.parametros,
		sga_reglas.nombre as regla_nombre,
		get_regla_mensaje(sga_elementos_revision.regla, sga_elementos_revision.parametros) as forma_cumplimiento_generica	   
FROM	vw_actividades_genericas_plan
		JOIN vw_optativas_plan ON vw_actividades_genericas_plan.elemento_revision = vw_optativas_plan.elemento_revision_generica AND vw_actividades_genericas_plan.plan_version = vw_optativas_plan.plan_version
		JOIN sga_elementos_revision ON vw_actividades_genericas_plan.elemento_revision = sga_elementos_revision.elemento_revision
		JOIN sga_reglas ON sga_elementos_revision.regla = sga_reglas.regla
WHERE	vw_actividades_genericas_plan.plan_version = <identificador del plan-versión> AND
		EXISTS (SELECT	1
				FROM	vw_actividades_genericas_plan as otra_generica
						JOIN vw_optativas_plan as otra_optativa ON otra_generica.elemento_revision = otra_optativa.elemento_revision_generica AND otra_generica.plan_version = otra_optativa.plan_version
				WHERE	vw_actividades_genericas_plan.plan_version = otra_generica.plan_version AND
						vw_actividades_genericas_plan.elemento <> otra_generica.elemento AND
						vw_optativas_plan.elemento = otra_optativa.elemento)
ORDER BY	3;

Saludos, Florencia.

Hola Florencia, gracias. Con esa consulta funcionó. Lo van a incluir en una próxima versión? como hacemos para incorporar este parche?

Saludos,
Naimid

Naimid,

Por favor, creá una nueva solicitud en el Gestor de Solicitudes haciendo referencia a este post.

Saludos, Florencia.

Gracias Florencia. Ya cree la solicitud.

Saludos,
Naimid