Delphi - Consultas lentas y base de datos

 
Vista:

Consultas lentas y base de datos

Publicado por Pablo (9 intervenciones) el 21/05/2003 19:50:53
La historia es la siguiente: creamos un software administrativo para una academia, la cual es muy grande y no querían perder los datos históricos que se encontraban en su antiguo sistema. Todo funciono muy bien en el desarrollo, la pruebas mostraban muy buenos resultados y se veían pocas fallas. El problema surgió hace unos días cuando migramos los antiguos datos a sus nuevas tablas, la migración fue exitosa, todos los datos se volcaron sin inconvenientes en la nueva estructura de datos, pero, cuando probamos ahora nuevamente nuestro sistema, el mismo no responde como antes, es decir para realizar una consulta, que solía ser instantánea, ahora se demora unos 15 segundos (una eternidad en informática) o más, ya que cuando lo probamos en la red y accedemos remotamente a la base de datos el tiempo se incrementa. El desarrollo lo hicimos en Delphi 7 y el motor de base de datos es Intebase 6.5, que esta instalado en una maquina con Windows 2000 Advance Server, los nodos poseen Windows 2000 Profesional y la Red es Fast Ethernet con un Switch 10/100. Me podrían decir si podríamos estar cometiendo algún error al configurar la base ó simplemente Interbase trabaja de esa manera, hay alguna forma de comprobar que nuestra configuración esta bien hecha o hay algo para acelerar las consultas (en su mayoría SQL). Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consultas lentas y base de datos

Publicado por BigLuis (463 intervenciones) el 21/05/2003 20:00:22
La experiencia que yo tengo con Interbase (no demasiada) es que en terminos generales no es nada lento, pero claro depende de la configuracion de las consultas y de la cantidad de datos que traiga cada vez.No hablas del protocolo empleado para las conexiones, pero si no es TCP/IP te aconsejo que utiliceis este ya que la diferencia de velocidad es considerable comparandolo con otros (Ej. ODBC).Piensa que Interbase esta construido para trabajar con este protocolo aunque admita otros.
Prueba tambien con consultas que trabajen con datos unidireccionales ya que aunque no te dejen navegar por ellos son mucho mas rápidas.
Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultas lentas y base de datos

Publicado por mamcx (533 intervenciones) el 21/05/2003 21:13:08
Adicionalmente es casi seguro que haya problemas en la misma implementacion. Los problemas de rendimiento son, en su orden causados por a)Implementacion no escalable 2)Gestion no adecuadas de los recursor 3)Cosas de configuracion del SO (como el protocolo). Cualquier sistema de base de datos debe probarse:

1- Con 0 registros
2- Con 1
3- Con una lista pequeña de datos bien construidos
4- Con una lista datos aleatorios que esten al limite posible. Por ejemplo entre 10.000-1.000.000
5- Localmente
6- En red.

Personalmente nunca he visto que alguien logre escalabilidad al primer intento si nunca se asegura de chequear los puntos 4-6

Como sugerencias:

1-Trata de aislar primero las consultas verdaderamente lentas. Solamente deberian ser como max. la suma de todos los procesas de proceso complejo (por ejemplo, el cierre de una contabilidad). Si esto ocurre hasta obteniendo cosas simples como listas de clientes, es OBVIAMENTE un problema de implementacion
2- Utiliza Procedimientos almacenados. Si puedes/quieres
3- Principlamente, utiliza el modelo de desconexion:
-Solo se obtiene el minimo de datos necesarios
-Conectarse tan tarde como se pueda y desconectarse de la BD tan rapido como sea posible
-Utilizar dataset en memoria para la edicion
-Usar consultas readonly para reporteo

Con ejemplos de que te sale lento, podriamos sacar algunas recomendaciones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consultas lentas y base de datos

Publicado por Pablo (9 intervenciones) el 22/05/2003 23:20:54
El protocolo que usamos es TCP/IP, y las consultas en su mayoria son SQL, en el peor de los casos hace join con 5 tablas más o menos. Probare algunas de las ideas que me dierón. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar