FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Yo tuve problemas de lentitud al ingresar registros a FB, tardaba varias horas en procesar 15,000 registros, estuve analizando el proceso y descubri que cada vez que queria agregar un registro conectaba a la base, abria la tabla, agregaba el registro, cerraba la tabla y cerraba la conexion de la base de datos. Ahora lo que hago es al inicio del programa conecto la base de datos y abro mi tabla, inserto los 15,000 registros, cierro la tabla y cierro la conexion a la base de datos.
Con eso el proceso lo reduje a 6 minutos, parece increible pero asi fue. Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#2
|
|||
|
|||
hola caral... osea me recomiendas cambiarme a zeos?
Que componente puedo utilizar para guardar registros en una tabla... y que sea lo mas rapido posible. Les dejo aqui el codigo que utizo ahora...
Que tal este codigo para ingresar datos... como puedo mejorarlo para aumentar la velocidad de la transaccion Saludos |
#3
|
||||
|
||||
Simple: Usa cualquier otro motor: Firebird, mySQL, PostGress...cualquiera es más rápido que Interbase.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#4
|
||||
|
||||
Cuándo se programa aplicaciones que se conectarán via Internet hay que tener cuidado sobre que correrá por el canal de comunicación, que es bastante estrecho.
Tu cliente puede tener un ADSL de 4Mb, pero ¿cuanto tiene el servidor? ¿cual es la velocidad real de comunicación entre ambos puntos? ¿hay horas pico u otros factores que afecten la velocidad de comunicación? (por ejemplo, que el mismo canal se use para enviar correos, ver videos o cualquier otra actividad típica de internet) También hay que saber en detalle que hace la aplicación y cómo funcionan los componentes que usas. En concreto, he realizado aplicaciones usando Firebird e IBX que van muy bien, incluso con canales mas estrechos, así que puedo garantizar que es posible. En tu caso concreto, ayudaría que nos contes en que instrucción en particular se produce la "lentitud". Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Cita:
Cita:
Cita:
La lentitud en tu caso no tiene q ver con el motor ni con los componentes, tiene q ver con otras cosas, a falta de mas detalles es dificil adivinar.. |
#6
|
||||
|
||||
Cita:
Todo es relativo (ya lo dijo Einstein ) y depende de muchos factores, pero, en general, Firebird es más rápido que Interbase. Test comparativo Interbase 7.5 y Firebird 1.5 |
#7
|
||||
|
||||
Cita:
En cuanto al uso de controles db-aware, quizás no sea la mejor alternativa. En principio una transacción debe durar el mínimo tiempo posible, con controles db-aware la transacción empezará (supuestamente) cuando le das a editar, y termina al hacer el post (el usuario puede irse a tomar café mientras deja el registro en edición). Sin controles ad-aware, se prepara un botón que al hacer clic: - Empezar transacción - Enviar un sql con la sentencia de actualización/borrado/inserción - Finalizar transacción. Todo ocurre en .... ¿milisegundos? El problema que veo en este hilo es que se están discutiendo muchos factores al mismo tiempo, y eso puede volver loco a cualquiera. mjjj no te agobies , tomálo con filosofía. Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
|||
|
|||
Ok... me han dado muchas ideas pero nada conciso...
Les cuento algo mas del programa... Antiguamente guardaba los datos con el componente TIBTable, pero ahi si que iva relamente lento... por sugerencia de otro hilo lo cambie e IBDataset... y mejoro notablemente, pero sigue siendo lento. Esto se pone lento cuando guardo en cierta tabla... la tabla tiene 40 campos y alrededor de 20 mil registros. Será que son muchos campos, es decir, envio mucha informacion via internet? Será bueno utilizar otros Componentes... CUALES? Utilizo Firebird 2.03, Delphi 2006 y Componentes (Interbase que vienen con Delphi) POrfavor guienme aer si puedo resolver esto Gracias |
#9
|
||||
|
||||
Hola
No me hagan mucho caso, ya saben que de estas cosas no se. Lo que me extraña mucho es: Dices que guardas en una tabla con 40 campos eso es normal, que la tabla tenga 20 mil registros que importa. Digo esto por que normalmente se guarda informacion de tres fromas. 1- Editando los campos, esto solo vera afectados a estos, osea una linea en la tabla. 2- Haciendo un cambio (upDate), esto tambien afectara solo a una linea. 3- Insertando un nuevo registro, esto tambien sera lo mismo, una linea. Entonces lo que se enviara de informacion o se recivira sera una linea del registro de la tabla. Esto sera lo mismo si se hace con varias tablas a la vez, seran solo unas lineas. Sigo con la misma idea, para mi es el procedimiento, la sentencia sql, no tanto los componentes, aunque Zeos sea rapido, cuanta informacion estas enviando y reciviendo, esa es la pregunta?. Esto es solo un comentario. Saludos |
#10
|
|||
|
|||
Gracias Lepe por tu consejo... estuve revisando lo de normalizacion de tablas y creo que puedo sacarle mayor provecho a mis tablas utlizando esas ideas.
Por otra parte... lo de cuanta infomacion estoi enviando un registro que se compone de 40 campos... no se si esto es mucho o no para trabajarlo cliente/servidor, porque si lo hago en forma local me funciona perfecto... casi instantaneo todo. Les explico algo del programa... este sirve para generar ordenes de compra. Dentro de la base de datos tengo 2 tablas... COMPRAS y DETCOMPRAS. En la primera se guardan datos como: numero de orden de compra (llave), numero cliente, tipo orden, monto orden, centro costos, etc. En la segunda (DETCOMPRAS), todo el detalle de items asociados a la orden. Problemas: Cuando presiono el boton para generar una nueva orden de compra utilizo el siguiente codigo para saber cual es la ultima orden y generar la nueva orden. La aplicacion maneja las orden para 2 empresas distintas
Esto demora unos 20 segundos mas o menos... esta bien?? Existe otra forma de hacer esto mismo, pero que vaya mas rapido. Bueno... muchas gracias.... again |
#11
|
||||
|
||||
Pregunto nuevamente... ¿cual es la línea de código que demora los 20 segundos?
Eso nos dará una idea mas clara. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lentitud en la red. | Carlos Arevalo | Varios | 2 | 09-07-2007 19:04:08 |
Lentitud conexión SQL | amedina | Conexión con bases de datos | 8 | 04-08-2005 21:40:41 |
Lentitud en Cliente FireBird.... | AGAG4 | Firebird e Interbase | 7 | 29-03-2005 16:56:51 |
Lentitud de FireBird 1.03 en Windows 2003 | El_Perrito | Firebird e Interbase | 1 | 12-08-2004 09:21:25 |
Lentitud en la red | Ignacio | Conexión con bases de datos | 2 | 26-08-2003 14:09:39 |
|