FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
BDE igual de rápido q DBExpress
Saludos Foro : Tengo una historia, y dice asi : Trabajo con D5 + MS SQL Server 2000 y con el BDE.
Entonces al ver el avance de las versiones del Delphi, decidi avanzar hacia D7 para tomar la tecnología DBExpress en mis proyectos, ya q el BDE esta obsoleto. Para esto utilizando D7, decidi hacer algunas pruebas comaparativas entre el BDE y DBExpress : 1) Prueba de Grabación : Tome el maestro de Clientes e inserte todos sus datos en otra tabla en blanco de igual estructura, tenia 2,000 registros. Hice esta operacion leyendo registro x registro, haciendo un insert en la tabla en blanco, asignaba los datos y luego ApplyUpdates(0). Resultado : BDE - 1 minuto 08 segundos DBEXpress : 1 minuto 12 segundos. 2) Prueba tome una consulta SQL q trabaja con varias tablas, 4 lef joins de mi antiguo sistema. Resultado : BDE - 0 Segundos DBExpress - 0 segundos Aparentemente en estos puntos q me parecen relevantes no hay ventaja del DBExpress sobre el BDE. Quisiera saber si estoy equivocado sobre ests pruebas, seguramente hay otras formas para demostrar la superioridad del DBExpress sobre el BDE. Como demostrarlo? Que enfoque tomar para estas pruebas? Segun la información que lei dice : OBJETIVOS DE DBExpress : Cuando se planteo la creación de este nuevo sisitema de acceso a datos, se tuvieron en cuenta las siguientes objetivos : * Velocidad de respuesta. Quisiera probar este punto : Velocidad de respuesta. Se supone q es mas rápido q el BDE. Gracias de antemano por sus respuestas.
__________________
Joseph Buttgembach Verde Lima - Perú |
#2
|
|||
|
|||
Mi estructura de conexión
Para las pruebas utilice la siguiente estructura :
BDE : DataBase + Session Query + DataSetProvider - ClientDataSet + DataSource DBExpress : SQLConnection SQLQuery + DataSetProvider - ClientDataSet + DataSource
__________________
Joseph Buttgembach Verde Lima - Perú |
#3
|
|||
|
|||
Tu mismo has demostrado la superioridad de dbexpress, en el software cualquier tecnologia nueva y superior que aparece es mas lenta que la anterior. Esto se cumple en el 90% de los casos.
DBExpress intenta abstraer el acceso a los datos de modo que permita conectar a muy distintas bases de datos de forma sencilla y con un interface comun, permitiendo ademas realizar aplicaciones de 3 capas, y muchas mas cosas. Desgraciadamente cuanto mas se abstrae de esta forma, mas lento se vuelve el acceso. Independientemente de esto la prueba que has hecho es demasiado simple de modo que es logico que te haya dado resultados parecidos en los dos sistemas. Saludos |
#4
|
||||
|
||||
Quizas deberias pensar que el planteamiento para dbExpress es trabajar en sessiones no grabando registro por registro, la verdadera velocidad la veras si haces lo mismo que hiciste pero el applyupdates hazlo al terminar las todos los inserts y siquieres luegos publica cual ha sido la rapidez por registro.
__________________
Gami ------------------------------------------------------------------ La necesidad no tolera tardanzas pero mas vale tarde que nunca |
#5
|
|||
|
|||
Muchas gracias por las respuestas :
Segui el consejo de "argami", es decir hice los inserts sobre la tabla y al final, despues de insertar los 2,000 registros hice un solo ApplyUpdates(0), y los resultados fueron : BDE : 21 segundos DBExpress : 22 Segundos Que contradictorio, esperaba que DBExpress supere principalmente en rapidez al BDE, deberia ser el principio basico, segun los conceptos que lei y dice "Velocidad de Respuesta", espero estar equivocado...
__________________
Joseph Buttgembach Verde Lima - Perú |
#6
|
|||
|
|||
Saludos : Y continuando con la pruebas, ahora tenemos :
Decidi hacer las pruebas sin trafico en la red, es decir hice las pruebas cuando ningun ususario estaba conenectado a la BD ni a la red. Comparaciones entre DBExpress - BDE - ADO Resultado promedio obtenido despues de hacer la misma prueba mencionanada en el mensaje anterior, 10 veces : DBExpress : Lectura : 3.7 seg - Grabación : 11.3 seg Total : 15 seg BDE : Lectura : 3.6 seg - Grabación : 6.4 seg Total : 10 seg ADO : Lectura : 6 seg - Grabación : 12.2 seg Total : 18.2 Impresionante ... Pero el BDE es obsoleto, bueno asi dicen, tendre q cambiar a DBExpress asi sea 50% mas lento. Sinceramente antes de hacer las pruebas de tiempo, probaba la grabación y consultas con DBExpress y me daba la impresión q era mas rápido, pero no es cierto ...
__________________
Joseph Buttgembach Verde Lima - Perú |
#7
|
||||
|
||||
No se por que pero creo que aqui el mayor tiempo se lo lleva los midas (TclientDataset y TDataSetProvider).
Pero puede que al ser una capa general para varias bases de datos si sea mas lento. has probado la haciendo los insert's a pelo??
__________________
Gami ------------------------------------------------------------------ La necesidad no tolera tardanzas pero mas vale tarde que nunca |
#8
|
|||
|
|||
Finalmente, "BDE sigue siendo mas rápido que DBExpres y ADO"
Saludos Foro:
Y continuando con las pruebas, segui el consejo de "argami", descarte los ApplyUpdates para grabar los datos, y utilice Inserts SQL. Los resultados promedio despues de realizar 5 veces la misma operación, son : DBExpress 11.8 segundos BDE 11.2 segundos ADO 20.2 segundos Finalmente, "BDE sigue siendo mas rápido que DBExpres y ADO"
__________________
Joseph Buttgembach Verde Lima - Perú |
|
|
|