Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2004
carlomagno carlomagno is offline
Miembro
 
Registrado: jun 2004
Posts: 53
Poder: 20
carlomagno Va por buen camino
rendimiento

Hola a todos

tengo una aplicacion hecha en delphi 5 y interbase 7.1. No va demasiado fina. Tengo unas 200 megas de datos.
Ultimamente me estan planteando mis jefes de migrar porque el rendimiento es pequeño, sobre todo al insertar datos.

Debo migrar a firebir 1.5 o no vale la pena?


Gracias a todos los del foro.
Responder Con Cita
  #2  
Antiguo 03-07-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 22
__marcsc Va por buen camino
Hola,

aunque no he trabajado profesionalmente con Interbase sí que he hablado con mucha gente que lo hace y que están contentos. Una BD de 200 Mb creo que no es gran cosa para un SGBD como Interbase, y si dices que tienes problemas de rendimiento en las inserciones me inclino a pensar que la causa es otra, ya sea tu red, o el modo en que se hacen estas inserciones.

Qué componentes de acceso utilizas? Qué método utilizas para realizar dichas inserciones? Si nos das más detalles quizás haya gente que pueda ayudarte.

Saludos.
Responder Con Cita
  #3  
Antiguo 03-07-2004
carlomagno carlomagno is offline
Miembro
 
Registrado: jun 2004
Posts: 53
Poder: 20
carlomagno Va por buen camino
Gracias por ayudarme

Utilizo los componentes nativos delphi 5 pasando por el OBDC de EasySoft y hago inserciones via TTable normalmente.

Gracias
Responder Con Cita
  #4  
Antiguo 03-07-2004
AdrianD AdrianD is offline
Miembro
 
Registrado: may 2003
Ubicación: San Juan - Argentina
Posts: 113
Poder: 21
AdrianD Va por buen camino
En el modo que haces las inserciones hay varios problemas:
- Estas utilizando ODBC y no componentes nativos que van mucho mas rápido.
- Las inserciones deberías hacerlas con sentencias SQL ya sea a travez de un componente TQuery o con procedimientos almacenados.
- Las bases de datos Cliente/Servidor como Interbase/Firebird no fueron diseñadas para trabajar como las hace trabajar un TTable

Si te sirve de referencia tengo 4 servidores con Firebird cada uno de ellos con 5 a 10 puestos de facturación permanente, las bases de datos rondan los 300 mb y nunca hubo problemas de rendimiento.

Espero haber ayudado
Responder Con Cita
  #5  
Antiguo 05-07-2004
carlomagno carlomagno is offline
Miembro
 
Registrado: jun 2004
Posts: 53
Poder: 20
carlomagno Va por buen camino
gracias por tu ayuda

que componentes me recomiendas. No me importa si son de pago.
Responder Con Cita
  #6  
Antiguo 05-07-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Buenas,

Yo utilizo los FibPlus (http://www.fibplus.net/) pero también tenés los IBO (http://www.ibobjects.com/) de los cuales he escuchado excelentes comentarios. Ambos comercieles.

Otras opciones son los UIB (www.progdigy.com/UIB/) o los MDO (Este ultimo ha venido mejorando bastante en su ultima versión 0.8.8 puesto que da soporte para utilizar las dll de Firebird. Su web es: http://sourceforge.net/projects/mdo/)

Actualmente estoy pensando en pasarme a DBExpress por un tema de flexiblidad, pero no he tenido tiempo de probar demasiado sobre el tema. De todas formas hay gente en el foro que podrá ayudarte si es que elegís estos ultimos.

En cuanto a lo de el rendimiento de Interbase/Firebird se viene hablando bastante por el foro, diría que una búsqueda por el mismo podría aclararte muchas cosas y darte algunas ideas.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #7  
Antiguo 05-07-2004
AdrianD AdrianD is offline
Miembro
 
Registrado: may 2003
Ubicación: San Juan - Argentina
Posts: 113
Poder: 21
AdrianD Va por buen camino
Actualmente estoy usando los ibexpress, que vienen con Delphi, pero estoy probando los FibPlus y van realmente bien.
Responder Con Cita
  #8  
Antiguo 05-07-2004
Avatar de ACK
ACK ACK is offline
Miembro
 
Registrado: jun 2003
Ubicación: Castellón
Posts: 27
Poder: 0
ACK Va por buen camino
Yo utilizo las FIBPLUS, y son bastante buenas. Te recomiendo que las pruebes, el problema es que son de pago.

Saludos.
Responder Con Cita
  #9  
Antiguo 05-07-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Para Interbase te recomiendo los mismos IBX que vienen con Delphi, y para Firebird te recomiendo IBO o FIBPlus (aunque también puedes utilizar IBX, en el futuro podrias encontrar problemas de compatibilidad).

Además de los consejos citados por los compañeros, si tienes alguna consulta que va lenta, se soluciona añadiendo los índices adecuados en las tablas correspondientes.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #10  
Antiguo 06-07-2004
carlomagno carlomagno is offline
Miembro
 
Registrado: jun 2004
Posts: 53
Poder: 20
carlomagno Va por buen camino
mi problema no son las consultas sino las inserciones. La primera insercion me va muy lenta y las siguientes mejoran pero tardan. Es una caja de una tienda por lo que la vecidad es importante.

Por el momento tengo
- no cambiar de interbase a Firebird ya que no notaria demasiado cambio
- utilizar IBX mejor que FIBPLUS
- utilizar TQuery en vez de TTable

Gracias a todos por vuestra ayuda

Alguna sugerencia mas
Responder Con Cita
  #11  
Antiguo 06-07-2004
Avatar de ACK
ACK ACK is offline
Miembro
 
Registrado: jun 2003
Ubicación: Castellón
Posts: 27
Poder: 0
ACK Va por buen camino
¿Tienes triggers en la inserción?

Si fuera así, puede que tengas alguna consulta u operación en el trigger, que sea la que relentiza dicha inserción.

Saludos.
Responder Con Cita
  #12  
Antiguo 06-07-2004
carlomagno carlomagno is offline
Miembro
 
Registrado: jun 2004
Posts: 53
Poder: 20
carlomagno Va por buen camino
tengo un trigger de update.

Puede que sea esto. Voy a quitarlo a ver que pasa.
Responder Con Cita
  #13  
Antiguo 06-07-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

No va a pasar nada. Un trigger de update no se ejecuta en una inserción.

Está claro que tu problema está en utilizar componentes TTable. Deberías realizar las inserciones con TQuerys, y seria mejor que utilizes componentes IBX, FibPlus o IBO en lugar de BDE.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #14  
Antiguo 06-07-2004
carlomagno carlomagno is offline
Miembro
 
Registrado: jun 2004
Posts: 53
Poder: 20
carlomagno Va por buen camino
gracias Marc por tu ayuda. Voy a probar con IBX
Responder Con Cita
  #15  
Antiguo 06-07-2004
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Acelarando la insercion

terecomiendo IBO yo losuso comercialmente
fiplus son bueno pero cuando la dta es muy grande comiensa a quedarse al contrario de ibo

Y para solucionar la insercion puedes hacerlo con un script.

Explico Supongamo sque quieres insert 100 registros no hagas el insert un a uno si de un avez

Ejemplo de codigo

Código:
   //ejemplo usan do ibo con ibx tabien se puede pero...
   with ti_scrip.create do begin
      ib_connection := la coneccion que usas
      sql.add('inset into x values x'); //registro 1
      sql.add('inset into x values x'); //registro 2
      .
      . 
      .
      sql.add('inset into x values x'); //registro n-1
      sql.add('inset into x values x'); //registro n
      execute;
   end;
coneste codigo agregas los registro a insertar y despues lo ejecutas y solo envias una intruccion al servidor.

espero te sea de utilidad.

Última edición por rastafarey fecha: 06-07-2004 a las 17:06:02. Razón: la etiqute de [CODE] estaba como CODE]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:57:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi