¿Lento?

Que tal... Mira, mi consulta es la siguiente... Existe un programa hecho en clipper, el cual guarda datos en DBF's, el programa funciona en modo multiusuario, alojado en una PC que funciona como Servidor, más no lo es tal, y lo acceden 6 computadoras más... El "problema" surge ahorita al consultar cierta información, más concretamente el catalogo de empleados y aquellas pantallas que hagan uso del mismo... Si un usuario consulta una clave es cosa de 2 seg para que le muestre resultados, pero ya siendo 2 los usuarios que consulten, la demora se incrementa de 15 a 20 segundos... Hasta hace unos meses no sucedía eso... Te doy más detalles:
- El sistema utiliza como dije DBF's, CDX y NTX
- El catalogo genera un consecutivo de clave automático, el cual rondaba por ahí del consecutivo 5200, pero decidieron por ahí que personal nuevo en este año se les asignara a partir del numero 8000... Y no se, pero a partir de que se "partio" el consecutivo, las consultas al catalogo se volvieron lentas
- El ejecutable reside en una pc con Win XP pro y las PC están conectadas en red Microsoft, algo sencillo.
¿Alguna idea?
Gracias.

1 Respuesta

Respuesta
1
El que se modificara el consecutivo no afecta de manera alguna el desempeño de la aplicación, un índice es un archivo que guarda la llave y la ubicación de la misma, por lo que si la llave es consecutiva o no carece de importancia (esa es la razón de los índices), si el ser los datos consecutivos tuviera relevancia, una búsqueda secuencial puede sustituir de manera eficaz un índice, y con mejores resultados.
Desde mi punto de vista el problema no es que se haya partido la información, es el método de búsqueda o la forma de interactuar de las tablas con los índices, como una primera aproximación sugiero que se vuelvan a generar los índices, si eso no mejora el desempeño, quizá una revaloración de la arquitectura de la aplicación y hasta una eventual migración a un desarrollo cliente-servidor podría ser considerada como una solución viable.
Bien, puede que la migración sea lo más viable, pero seria a mediano plazo... algún ejemplo sobre la regeneración de indices me ayudaría... Gracias de nuevo
Abre con las tablas con la CLD (o la que utilices para accederlas, quizá DBU) y vuelve a generar los índices, yo cree una herramienta que leía el diccionario de datos de la aplicación y abría cada tabla, la limpiaba y volvía a generar los índices.
Dentro del diccionario incluía el nombre de la tabla, los campos que la componían y cuales de esos campos formaban parte de los índices (y de que índices), usaba la técnica de catalogo de la versión autumn-86 que Nantucket no impulsó pero que por pereza en su momento no mofdifiqué y que posteriormente demostró su utilidad, si el plazo es un poco más que "mediano", quizá te sería conveniente implementarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas