FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problemas de lentitud
Hola,
Sigo pasando mi aplicación de paradox a interbase 7 usando delphi 6. He creado un IBdataSet, que parece me está funcionando Ok, pero si le uno a un navigator, para moverme por los registros, sigue funcionando tan lento como la TIBTAble, por lo que estoy igual que al principio. Esta tabla tiene muchos registros, es cierto, pero con paradox no iva lento, se iva al último registro de modo inmediato. Ahora, antes de abrir la aplicación tengo que forzar a que se abra la tabla, vaya al último registro, y de nuevo al primero, para que la primera vez que se pulse "ir al último registro", no sea interminable. Se suponía que usar el IBDataSet, iva a suponer una mejora en cuanto a la velocidad, respecto del TIBTable, pero no es así. Ahora tengo la misma aplicación que antes funcionaba con paradox, con las mismas opciones, pero con una velocidad que la hace inviable. ¿Alguna idea para mejorar la velocidad de la aplicación? Gracias por la ayuda de ante mano. Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) Última edición por Giniromero fecha: 28-07-2003 a las 11:57:44. |
#2
|
||||
|
||||
Hola,
Cita:
Algunos consejos para mejorar la velocidad: 1. Abrir conjuntos de datos convenientemente filtrados. Traer del servidor sólo las columnas y filas necesarias. 2. En lo posible desplazar la lógica de la aplicación al servidor en procedimientos almacenados y triggers, de forma que se reduzca lo más posible el tráfico de red. 3. Mucho cuidado con los interfaces de usuario "demasiado" interactivos. Los controles enlazados a datos (DBGrids, DBEdits, DBCombos, ...) funcionan muy bien con motores navegacionales (Paradox, Access, dBase, ...), donde se utiliza un acceso casi directo a cada registro, pero no se diseñaron pensando en entornos cliente/servidor, donde se trabaja con conjuntos de filas y donde las optimizaciones de índices se usan en el servidor en la construcción del conjunto de filas devuelto, pero no en la navegación por las mismas en el cliente. Se puede jugar con algunos parámetros de los DataSet's IBX para mejorar algo el rendimiento, y seguro que algunos compañeros podrán dar alguna receta, pero la clave de un rendimiento óptimo es asumir, y diseñar e implementar, una aplicación cliente/servidor. Saludos. |
#3
|
|||
|
|||
Cita:
y si mi aplicación es un conjunto de fichas, cada una de un cliente distinto, con todos los datos, económicos y personales del mismo, ¿como hago para moverme entre las "fichas" si no puedo usar estos controles? Muchas gracias Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) Última edición por Giniromero fecha: 28-07-2003 a las 13:13:57. |
#4
|
||||
|
||||
Hola,
Cita:
De todas formas, ya que planteas el uso de alternativas a los controles enlazados a datos, hace tiempo se discutió en estos foros ese tema y algunos compañeros apuntaban el uso de controles no-enlazados a datos (Edits, Grids, Combos, Tree-Views, ...). Por supuesto exige mucha más programación, y el resultado puede no ser el esperado. Cita:
Solución (entre otras no excluyentes): la que comentábamos antes, restringir al máximo el número de filas y columnas traídas desde el servidor. Los motores cliente/servidor no están diseñados para soportar desplazamientos aleatorios entre los registros. Pueden hacerlo relativamente bien sobre conjuntos pequeños, pero no sobre grandes volúmenes. Saludos. Última edición por kinobi fecha: 28-07-2003 a las 13:40:44. |
|
|
|