 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Roid Cmdr

Registrado: 18 Ene 2004Mensajes: 135
|
Publicado: Sab 15 Dic, 2007 9:12 pm Asunto: Firebird+Blobs+Zebedee= volverte loco. |
|
|
Hola,
Tengo una aplicacion q ataca a una BBDD Firebird y tiene instalado Zebedee con compresion 9. Cuando trabajo en remoto los retardos son de hasta 35 segundos. Cuando activo la opcion poFetchBlobsOnDemand=true en el TSQLClientDataSet, las consultas q tardaban 35 segundos solo tiene delays de 3 sg. Con lo que se llega a la conclusion de que el problema esta en los Blobs.
Nota: Los Blobs son de Segmento=1 Subtipo=1.
Pregunta.... Q pasa aqui????
Suponemos que Zebedee comprime tambien los BLOBS, entonces donde puede estar el fallo?. Posible respuesta...
Leyendo en el manual en FetchOnDemand dice que si los BLOBS no los incluye el proveedor en los paquetes de datos entonces el cliente hace un Fetch del BLOB .... de ahi el retardo tan grande..
Alguna idea, solucion o ticket para irme a las Bahamas?
Un saludo....... |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Dom 16 Dic, 2007 2:43 am Asunto: |
|
|
Hola, pues la opcion Fetched aun que parezca raro, "trae" o forza a traer el contenido de un blob, hasta que se llene el buffer, esto es que si un campo NO se ha pedido tambien se trae, por ello la segunda consulta tarda 3 segundos. la combinación (Firebird+Zebedee) es buena pues en muchos de los casos he visto que es muy funcional. a hora lo que estas haciendo en el componente, (que por lo que se ve es uno de los de la paleta ADO), yo he usado los componentes que vienen en la paleta de interbase y no he tenido ningun problema.
ahora dentro de tu BLOB que tipo de informacion? (por ende los BLOB son para almacenar datos en formato binario) estas almacenando, Graficos, Textos (generalmente tipo MEMO) o Aplicaciones Binarias (exe,pdf, doc, xls, etc etc et)
aun que no es una regla general, pero la documentación de Firebird marca lo siguiente.
sub_type 0 segment size 80 <--- para imagenes, exe,pdf, doc, xls, etc...
sub_type 1 segment size 80 <--- para textos
y la configuracion que uso dentro del programa del Zebede, en un archivo de configuracion. es la siguiente
Cliente->Add("verbosity 2");
| Código: | server false
detached true
udpmode false
listenip 127.0.0.1
compression zlib:9
maxbufsize 16383 |
y no he tenido problemas en traer registro que en su interior contienen hasta 3 blob's, pero reitero, esto lo realizo con la paleta de interbase,
me puedes dar mas detalles en cuanto a lo que estas tratando de realizar?
Saludos y estamos en contacto. _________________
 |
|
| Volver arriba |
|
 |
Roid Cmdr

Registrado: 18 Ene 2004Mensajes: 135
|
Publicado: Dom 16 Dic, 2007 11:38 am Asunto: |
|
|
Estimado Cesar,
He probado tanto en dbexpress como el componente Intebase, ambos me tarda lo mismo. los blobs son de subtipo 1 y tamaño de segmento 1 ( es texto ). El problema es el fetch... te explico:
Te hago un diagrama de lo q aparentemente es la peticion:
Cliente BBDD
Consulta SQL------------------------------------------->
<Tupla1>
<------------------------------------------------Blob1 de tupla 1
.
.
.
.
.
El problema es que los Blobs aparentemente no estan en el paquete de datos que forman la tupla .Donde se demora la consulta (me refiero a consulta desde la peticion hasta la llegada total de datos) es en las peticiones de los blobs.
Hay alguna forma de decirle a la BBDD que los blobs vengan en el paquete de datos junto con los demas datos de la tupla?.
PD: Cuando la consulta te devuelve 30 tuplas no se nota mucho el retardo, pero cuando te devuelve 2000 tuplas y tienes 5 Blobs en cada tupla las demoras se hacen eternas.....
Un saludo y gracias. |
|
| Volver arriba |
|
 |
Roid Cmdr

Registrado: 18 Ene 2004Mensajes: 135
|
Publicado: Dom 16 Dic, 2007 11:42 am Asunto: |
|
|
Te mando de nuevo el diagrama, creo que hay caracteres que los interpreta de otra forma y ha salido mal en el post anterior....
DIAGRAMA:
Cliente-------------------------------BBDD
Consulta SQL---------------------*
*-------------------------------------Tupla1
Mandame Blob1 Tupla1-----------*
*------------------------------------Blob1 de tupla 1 |
|
| Volver arriba |
|
 |
Roid Cmdr

Registrado: 18 Ene 2004Mensajes: 135
|
Publicado: Dom 16 Dic, 2007 3:57 pm Asunto: |
|
|
Bueno, pues nada, resuelto el problema.....
He cambiado el Blob por un varchar (Eso le pasa por hablar con la boca chica ). Ahora solo me tarda 4 segundos traerme 28000 campos. Segun lei por ahi, zebedee funciona bastante bien cuando tienes muchos campos de tipo VarChar.
PD: Sigue sin convencerme que no lleve la opcion de que te traiga los blobs en el mismo paquete.....
Un saludo. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|