PDA

Ver la Versión Completa : Tutorial comparativa (IBX + Zeos + Firebird + Velocidad ) Novatos


Caral
09-04-2011, 23:23:56
Hola
Este tutorial mas que para vosotros lo hice para mi. :D
Mi intención era la de comprobar varias cosas:
1- Conexión componentes IBX o Zeos.
2- Velocidad de Insertar, modificar y borrar registros (tres conceptos básicos).
Bien:
Usando exactamente las mismas consultas (SQL) tanto para IBX como para Zeos muestro en un label la velocidad con que se ejecutan en milisegundos.
Como usar este ejemplo:
El ejemplo tiene una bd firebird 2.1, colocadla en donde queráis he inscribidla en IBExpert (simple)
Para mayor facilidad (C:\bdnueva\BD.FDB) ahí la puse yo. :p
Al iniciar el programa podeis conectar o desconectar tanto con IBX como a Zeos independientemente.
Ejemplo:
Presionad el boton (conectar IB).
Colocad un Dato (un digito) A, B, etc..
Cambiad la cantidad a insertar, modificar o borrar si queréis (esta en 100 actualmente).
Presionad el botón INSERTAR, veréis el tiempo transcurrido.
Colocad otro dato y presionad MODIFICAR, veréis el tiempo transcurrido.
Presionad el botón BORRAR, lo mismo, veréis el tiempo.
Una vez hecho esto, desconectad IBX (presionad el Botón Desconectar IB).
Presionad el Botón Conectar Zeos y haced lo mismo que hicisteis con IB.
Ahora os podréis dar una idea de la diferencia.
No os preocupéis si tarda un poco, no esta mal el programa, SI hay diferencias.
Espero os de una idea y mejor aun, saber como se pueden modificar las consultas para tener mejor velocidad.
Os dejo el ejemplo. :)
Saludos

Casimiro Notevi
09-04-2011, 23:44:41
Hola Caral, unas puntualizaciones :):
Hablas de interbase y firebird indistintamente, ¿lo has hecho con interbase o firebird?.
La base de datos de pruebas tiene extensión fdb así que supongo que será firebird, ¿qué versión has usado?
Me respondo, has dicho que fb2.1
Entonces queda la duda de interbase

Caral
09-04-2011, 23:47:29
Hola
DB Firebird, (Los componentes Interbase)
Saludos

Casimiro Notevi
09-04-2011, 23:50:20
¿Entonces entiendo que es una prueba comparativa con los componentes IBX y Zeos para acceder a Firebird?.
Si es así sería conveniente cambiar el título, ¿te parece bien que lo haga?

Caral
09-04-2011, 23:51:34
Hola
Aqui os dejo unas pantallas de muestra:
http://farm6.static.flickr.com/5030/5604411414_e31b9bafa7_z.jpg

http://farm5.static.flickr.com/4112/5604411420_90193ab87f_z.jpg

http://farm6.static.flickr.com/5068/5604411424_486f33202a_z.jpg

Saludos

Caral
09-04-2011, 23:52:13
Hola
Claro amigo, como tu creas conveniente.
Saludos

Casimiro Notevi
10-04-2011, 00:09:19
Hola
Claro amigo, como tu creas conveniente.
Saludos
El título lo he retocado un poquito con tu permiso :)
Las fotos he debido alojarlas en otro sitio porque las originales están alojadas en el servidor de Delphiaccess y no podemos acceder a ellas, o yo no sé cómo se podría hacer.
_____________________________________

Y retornando al tema, hay mucha diferencia entre uno y otro, es curioso, yo juraría que IBX es bastante más rápido que zeos.

Edito: lo había leído mal, obviamente IBX es más rápido porque es de "acceso directo", al igual que FreeIB, FIBplus, etc.

Caral
10-04-2011, 00:13:14
Hola
Y si haces una modificacion de los datos ni te digo la diferencia.
Yo mas bien creia que Zeos era mucho mas rapido y esto me decepciono.
Saludos

Casimiro Notevi
10-04-2011, 00:23:10
Es que es una filosofía distinta, como bien sabes Zeos está pensado para usar con distintas bases de datos, así que hay que sacrificar la velocidad porque deben añadir una "capa intermedia" que hace la "traducción" a las diversas BD que accede, sin embargo IBX es de acceso directo, sin intermediario alguno y tampoco puede acceder a otro tipo de BD.

Por cierto, hace algún tiempo (2004), Julio Nogueira (CombatF2D) hice una prueba comparativa con diversos componentes accediendo a Firebird, me pareció interesantísimo y lo puse aquí (http://www.intitec.com/varios/ComparativaComponentesAccesoFirebird.pdf) para tenerlo siempre presente.

Como verás el resultado es bastante clarificador:

Aquí el resumen:
Componente Tiempo (sg.)
DBEXpress___________80
BDE________________148
ZEOS_______________309
IBX_________________64
FIBPlus_____________64
UIB_________________86
BDE/ODBC___________195
ADO/ODBC___________211
IBO_________________75


Las pruebas se hicieron, evidentemente, con las versiones de los componentes que había en 2004, los resultados pueden variar con los actuales, pero serán seguramente en la misma proporción.

Caral
10-04-2011, 00:28:19
Hola
Alguna vez vi esa comparacion pero como novato se hace practico tener a mano un programa sencillo que demuestre estas cosas.
Mi intencion era en realidad ''probarlo'' personalmente, no es que no crea en lo que dicen los demas, si no que queria ademas de practicar ver que tanta diferencia podia haber.
Me parece interesante que los novatos puedan comprobar, no solo la diferencia, si no tambien la conexion en tal caso lo preguntan mucho :D.
Saludos

Casimiro Notevi
10-04-2011, 00:35:11
Por supuesto, siempre es interesante hacer pruebas de ese tipo, a mí también me gusta hacerlas, aunque haya visto otras similares, pero siempre queda la duda de "y si la hago de esta otra forma qué tanta diferencia existirá?.
Por cierto, el mismo autor hizo otra prueba comparando el acceso a firebird entre un servidor con windows y otro con linux, el resultado es prácticamente el doble de rápido con linux. Aquí (http://www.intitec.com/varios/Test_Firebird_Windows_Linux.pdf) está por si te interesa.
Es que me encantan las pruebas comparativas, aunque me digan que pierdo el tiempo :)

Caral
10-04-2011, 00:39:55
Hola
Esta no la conocía y me alienta a seguir conociendo mas de linux.:)
Saludos

Caral
10-04-2011, 18:34:25
Hola
Se me olvido comentar:
El usuario de la BD es SYSDBA y la clave natalia
Saludos

Casimiro Notevi
10-04-2011, 19:22:52
Realmente el usuario y password no van en la propia base de datos, están en otra base de datos adicional: security2.fdb, así que cuando copias una BD a otro equipo entonces las claves que valen son las de ese equipo.
Ese es uno de los puntos "históricos" de controversia con firebird, unos tienen razones a favor y otros en contra, pero de momento es así, aunque creo que en fb2.5 lo han cambiado.

Neftali [Germán.Estévez]
11-04-2011, 12:16:36
Hola Caral.
Muy interesantes resultados.
Sabía que Access es lento, pero no imaginaba que tanto... está claro que compararlo con SGBD no es "equitativo". No está a la altura de IB/FB.

Creo además que el problemas de tiempo son más de Jet4 (MDB), que no de ADO o Zeos.

Una prueba simple:
He utilizado tu mismo ejemplo con Access en local y los tiempo que me da son similares a los tuyos (en torno a 300ms en ALTA y MODIFICACIÓN).
Luego he probado ADO con SQLServer (en red, ya que en local no lo tengo) y los tiempos de inserción están en torno a 110ms. :eek::eek:
¿Si eso es en red, cómo serían en local?

gluglu
11-04-2011, 14:04:45
Además de todo esto, que es evidentemente muy interesante y clarificador, también convendría llegar un poco más allá.

Con una BBDD ya con una cantidad importante de registros, y un tamaño digamos 'no pequeño', comparar entonces las diferentes opciones. Porque como siempre, puede haber grandes diferencias entre una BD que contenga un par de registros o que ya contenga 'miles' por decir algo.

En este caso, habría que comparar también teniendo las respectivas tablas debidamente indexadas, porque lo que yo si que he podido comprobar, es que un Select con un poco de complejidad, hacerlo sobre una tabla no indexada a hacerlo sobre la misma tabla simplemente habiéndole creado un índice adicional, es una diferencia como del día a la noche. Una búsqueda sin indexar pueda tardar casi 30 segundos, y con la misma tabla indexada, el tiempo se reduce a unos cuantos milisegundos !

En mi caso particular, siempre estoy hablando de Firebird 2.1 con componentes IBX.

Delfino
11-04-2011, 14:32:53
Luego he probado ADO con SQLServer (en red, ya que en local no lo tengo) y los tiempos de inserción están en torno a 110ms. :eek::eek:
¿Si eso es en red, cómo serían en local?

Eso sera pq el servidor tiene hardware de servidor, o sea un procesador o varios muy potentes y una memoria tambien..

Caral
11-04-2011, 15:39:34
Hola
Creo que esto puede dar para mas pruebas sencillas.
En mi caso como sabéis cambien de Access (ADO) a Firebird (IBX) y siempre tuve la duda de usar ZEOS para el programa.
Ahora mismo, después del ejemplo de Neftali me parece interesante hacer la comparación de Firbird con MySql, pero no tengo Mysql instalado.
Saludos

Diego827
04-07-2011, 04:37:02
Hola
Aqui os dejo unas pantallas de muestra:
http://farm6.static.flickr.com/5030/5604411414_e31b9bafa7_z.jpg

http://farm5.static.flickr.com/4112/5604411420_90193ab87f_z.jpg

http://farm6.static.flickr.com/5068/5604411424_486f33202a_z.jpg

Saludos

Amigo, ¿como calculaste el tiempo para poder mostrarlos en los tlabel?
Si me sacas de esta duda 100 pts :D!!! (ya la busque por WWW)

Casimiro Notevi
04-07-2011, 09:16:15
Amigo, ¿como calculaste el tiempo para poder mostrarlos en los tlabel?
Si me sacas de esta duda 100 pts :D!!! (ya la busque por WWW)

Amigo, ¡¡¡ ahí tienes el código fuente !!! ;)

Diego827
04-07-2011, 21:31:02
Amigo, ¡¡¡ ahí tienes el código fuente !!! ;)

Lo siento no lo habia visto gracias.

gramajo
26-12-2015, 02:31:37
Le he dado vuelta a toda la publicación, he tratado de calcular los milisegundos con otros métodos para igualar el programa de Caral pero tengo la duda de cómo hacer el cálculo de los milisegundos. Saludos.

Casimiro Notevi
26-12-2015, 10:59:05
Le he dado vuelta a toda la publicación, he tratado de calcular los milisegundos con otros métodos para igualar el programa de Caral pero tengo la duda de cómo hacer el cálculo de los milisegundos. Saludos.
Crea un hilo nuevo con tu duda, es algo que no tiene nada que ver con este tema. Saludos.

EDITO: Ya veo que has creado un hilo y te han contestado ^\||/

DavidCorbeta
24-10-2019, 23:20:15
yo me hice un lio la verdadv\||/