Lentitud en operaciones de módulo exámenes

Hola, les consulto a fin de que me puedan dar alguna pista para resolver un problema de velocidad de funcionamiento o de respuesta de las operaciones de Generar Mesas de Exámenes y de Generar Actas de Exámenes, las que frecuentemente utilizan un tiempo excesivo según consideración de los usuarios.

Para mayores elementos de evaluación: no tenemos personalizadas dichas operaciones, se ejecutan con librerías dinámicas del lado del cliente, poseemos red de 1 Gbps en los enlaces troncales con el servidor y de 1 Gbps/100 Mbps en las PC clientes. El servidor dedicado es una PC con doble procesador Intel Core 2 Duo E6750 2.66 Ghz con 4 GB de RAM y disco de 500 GB, sistema operativo Windows 2003. Diariamente, al realizar los backups automatizados, se realiza el “update statistics” de la base.

Desde yá muchísimas gracias por toda ayuda, la que será muy bienvenida.
Cordiales saludos,

Aníbal

Hola Anibal, la operación de generar mesas de examen puede ser un poco mas lenta que el resto si es que generan mesas para todas las materias. Filtran por algun dato al entrar a esa operación?
La lentitud en que momento de la operación se da? Cuando se recuperan las materias y mesas de examenes, llamados y docentes. Cuando se dan graban las mesas creadas o modificadas… ?

Con respecto a la generación de Actas de examen lo mismo, no parecería ser una operación que debieras tener problemas de velocidad ya que no se maneja tanta informacion como la operacion de abm de mesas de examen. Pregunto lo mismo con respecto a esta operacion si podes dar mas detalles: filtros de busqueda usados, cantidad de mesas de examen que se recuperan al generar las actas de examen, cantidad de alumnos por acta, etc.

Luego ademas podríamos verificar si te falta algun indice!

¿Cual es la version de Guaraní?

Saludos!

Hola Anibal, como estas?
A ver si entendi…tienen en un servidor informix de BD en un lugar determinado, con la base del guarani y los clientes se encuentran en otro lado fisicamente? y la conexion es a través de internet?
si es asi…lo probaste con un cliente conectado directo con un cable cruzado o a un switch y ver la perfomance conectado de esa manera? para empezar a descartar problemas fisicos, lógicos o de conexión!!

Saludos!!
Marcelo

¡Hola Ale y Marcelo!,
gracias por las prontas respuestas.

Voy contestando por partes vs. requisitoria:

  • Para generar las mesas de exámenes se filtran con los datos del turno de examen y carrera.
  • La lentitud en esta operación se dá al recuperar todas las materias de las carreras filtradas.
  • Los filtros usados para generar las actas de exámenes es también el turno de examen, la cantidad aproximada de mesas de exámenes son 260 y normalmente no son muchos alumnos como para que generen demora. Por ejemplo un acta de no mas de 25 alumnos demora entre 4’ y 7’, según lo que me manifestaron los usuarios.
  • ¿Cómo chequeo los índices de la base?.
  • La versión que estoy usando del Guaraní es la v2.05.2
  • El servidor Informix de BD, con la base del Guaraní, está en nuestra Sala de Servidores y los clientes están en otros lugares físicamente distintos y dispersos. La conexión es cableada ethernet de 1 Gbps en los troncales (backbone) -entre el armario principal y los secundarios- y 100/1000 Mbps en los ramales secundarios para las PC clientes -entre los armarios secundarios y PC-.

Cordiales saludos,

Aníbal

Podrias enviarme en un archivo de texto la salida de la siguiente consulta?

SELECT informix.systables.tabname,
informix.sysconstraints.constrname,
informix.sysconstraints.constrtype,
informix.sysconstraints.idxname,
informix.sysindexes.idxtype,
informix.sysreferences.primary,
informix.sysreferences.delrule,
(SELECT tabname from systables where tabid = informix.sysreferences.ptabid) as tabla_referenciada
FROM informix.sysconstraints,
informix.systables,
OUTER informix.sysindexes,
OUTER informix.sysreferences
WHERE ( informix.systables.tabid = informix.sysconstraints.tabid ) and
( informix.sysconstraints.idxname = informix.sysindexes.idxname ) and
( informix.sysconstraints.constrid = informix.sysreferences.constrid )
and informix.systables.tabname[1,3] in (‘sga’)
order by informix.systables.tabname ;

Lo compararé con la base nuestra y verificaré si falta algún indice/foreign key.

Saludos!

Fijate ademas si tenes algun constraint o trigger deshabilitado:

Select T.tabname, O.objtype , O.name
FROM sysobjstate O, systables T
WHERE O.tabid = T.tabid and state = ‘D’
ORDER BY 1;

Hola Ale,
te envío lo solicitado. Verifiqué también los triggers y están todos habilitados (no me tiró ningún resultado la consulta del caso).
Gracias nuevamente y saludos,

Aníbal


Anibal, mirando solo algunas tablas del modulo de exámenes, veo que te faltan unas FK, y como consecuencia de esto te faltan los índices lo que podría ser el problema de la lentitud en estas operaciones.
Te comento lo que vi (solo sobre estas tres tablas, no compare mas…) de lo que te faltaría en la base, por favor verificá si estos archvos los tenes en el catálogo de la versión y correlos en la base:

sga_actas_examen
Foreign key: fk_acta_lla_me
Archivo: \sql\fk\fk_acta_lla_me.sql

sga_llamados_mesa
Foreign key: fk_lla_me_prest
Archivo: \sql\fk\fk_lla_me_prest.sql

sga_mesas_examen
Foreign key: fk_mesa_sedeua
Archivo: \sql\fk\fk_mesa_sedeua.sql

Foreign key: fk_mesa_plan
Archivo: \sql\fk\fk_mesa_plan.sql

Hola Anibal

podras correr lo siguiente y ver que te queda en el archivo de explain?

set explain on;
select * from sga_atrib_mat_plan
where unidad_academica =‘…’
and carrera=‘…’
and plan =‘…’
and version =‘…’;
set explain off;

Emilio

¡Muchas gracias Ale y Emilio!.
Estuve verificando y efectivamente el problema estaba en que me faltaban algunas fk. Las obtuve del catálogo y las corrí en la base de producción.
Cordiales saludos y abrazos,

Aníbal