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
  #21  
Antiguo 08-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hombre, amigo Poliburro, ahí has soltado unas frases que se las trae
Y te diré el por qué decirlo... El documento que has remitido expone lo siguiente sobre postgresql:

Cita:
Empezado por benkmarch
Minimal custom tuning was implemented to the PostgreSQL database for all performance
measurements. The parameters modified are listed below.
Parameter Default Modified
autovacuum
true false

checkpoint_timeout
5min 1h

effective_cache_size
3041205 4050045

max_connections
100 400

max_fsm_pages
7522049 10044817

max_fsm_relations
470128 627801

shared_buffers
988820 2640950

work_mem
261288 348211

Table 6: PostgreSQL Tuning
y de Sql server dice lo siguiente al respecto:

Cita:
Empezado por benkmarch
Already optimized for peak performance out of the box, no specific SQL Server tuning was
performed.
eso de entrada descalifica completamente la comparativa.... y luego el mismo documento establece que la conexión se hizo usando jbdc... por qué no usar la capa de conexión nativa de cada motor?

Y la cereza en el pastel... si observas la gráfica un postgresql obtimizado gana por poco a un mssql con instalación por default.

De ahí mis palabras... no puedes escrigrimir un argumento que no conoces y no validaste. esgrimirlo y que resulten esos detalles solo habla de usarlo sin mucho análisis.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #22  
Antiguo 09-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No existen las comparaciones perfectas, siempre se puede obtener más o mejor rendimiento, nadie está contento ni satisfecho nunca, se haga como se haga.
Tú mismo lo has hecho, primero dices que no es comparable, para a renglón seguido decir que a pesar de ello está muy igualado.
Cualquier resultado sería discutible hacia cualquiera de los bandos. Todos los datos y gráficas son interpretables según el punto de vista de cada uno.

Aunque hay que dejar claro una cosa y ahí no vas a poder rebatirlo: ms sql server es muy caro, necesita un equipo windows y todos los programas, accesorios, utilidades, etc. Eso es pagar por ellos y sus licencias. Mucho dinero.

Un equipo postgresql (firebird, mysql, etc.) lo montas sobre un servidor linux y te ha costado en total... ¡¡¡ cero euros/dólares !!!
Responder Con Cita
  #23  
Antiguo 09-11-2012
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No existen las comparaciones perfectas, siempre se puede obtener más o mejor rendimiento, nadie está contento ni satisfecho nunca, se haga como se haga.
Tú mismo lo has hecho, primero dices que no es comparable, para a renglón seguido decir que a pesar de ello está muy igualado.
Cualquier resultado sería discutible hacia cualquiera de los bandos. Todos los datos y gráficas son interpretables según el punto de vista de cada uno.

Aunque hay que dejar claro una cosa y ahí no vas a poder rebatirlo: ms sql server es muy caro, necesita un equipo windows y todos los programas, accesorios, utilidades, etc. Eso es pagar por ellos y sus licencias. Mucho dinero.

Un equipo postgresql (firebird, mysql, etc.) lo montas sobre un servidor linux y te ha costado en total... ¡¡¡ cero euros/dólares !!!
Hola

Pues como siempre digo, DEPENDE, DEPENDE, DEPENDE.

La mejor base de datos es la que te da lo que necesitas, ni mas ni menos.

Yo no creo que la razón de peso para elegir cualquier cosa no solo motor de base de datos gire en torno a su costo, aquí es ver los proyectos unitariamente. A veces ni siquiera es necesario utilizar una base de datos, con simples archivos XML incluso Paradox es mas que suficiente, pero a veces los clientes quieren pagar por una base de datos super cara....

No siempre lo mejor es lo ideal.

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #24  
Antiguo 09-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No existen las comparaciones perfectas, siempre se puede obtener más o mejor rendimiento
¿Y entonces para que decir que es mejor X motor con una comparación imperfecta? Yo de viva mano puedo decirte que PostgreSql responde mejor que Sql Server cuándo separas los índices y los direccionas a un arreglo de discos de mayor velocidad y para eso no necesito documentos o comparaciones sesgadas.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Tú mismo lo has hecho, primero dices que no es comparable, para a renglón seguido decir que a pesar de ello está muy igualado.o
¿yo he dicho que no son comparables posgreSql y MsSql? ah caray ¿dónde?.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Todos los datos y gráficas son interpretables según el punto de vista de cada uno.
Cuándo se tratan datos duros y fidedignos eso no es verdad.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
ms sql server es muy caro, necesita un equipo windows y todos los programas, accesorios, utilidades, etc
Si hablamos de precios, Oracle y Db2 Son más caros que SQl server y no por eso Sql server es mejor que ellos dos.


Si hablamos de un motor gratuito y multiplataforma yo elijo al ciento por cieto PostgreSql.

En resumen y con relación al tema de este hilo....

Agregaremos el retorno de múltiples resultsets a la lista de características que no soporta Firebird, Ok que no lo usas o no lo requieres ok, pero al final no lo soporta.

Yo por mi experiencia con los motores de bases de datos si tuviera que elejir un motor de base de datos gratuito y multiplataforma me iría por PostgreSql. Jamás por firebird, pero ese es mi punto de vista y si tu elijes Firebird, ok. muy bien ese es tu punto de vista.

Saludox
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #25  
Antiguo 09-11-2012
Avatar de mightydragonlor
[mightydragonlor] mightydragonlor is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Medellín-Colombia
Posts: 587
Poder: 18
mightydragonlor Va por buen camino
Me parece que un RDBMS debe remitirse a guardado y consulta de datos, esa opciones extras, me parecen que no son el fuerte del mismo, que trabaje con XML? para que? para eso no está en lenguaje de programación?, yo sólo me guío por facilidad de administración, de instalación, desempeño, multi-plataforma, soporte al standard Sql y mi experiencia me ha mostrado todo esto en Ms-Sql 2005 y Firebird 1.5, en lo personal prefiero Firebird y he hecho pruebas de desempeño en mi trabajo y si, Firebird me ha demostrado ser mas rápido, ambos instalados de fabrica, ahora varias cosas que había hecho en Firebird 1.5 las pasé a Firebird 2.5 y han mejorado bastante, así que no, no tengo quejas de Firebird, ni la mas mínima y si requiero cosas especiales, las hago con DDL, en Lazarus o las busco y punto, hay muchas, como por ejemplo, Full Text Seach, no me complico, uso lo que me gusta y para mi es la mejor opción.

Saludos.
__________________
mas confundido que Garavito el día del Niño.
Responder Con Cita
  #26  
Antiguo 09-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por poliburro
¿Y entonces para que decir que es mejor X motor con una comparación imperfecta? Yo de viva mano puedo decirte que PostgreSql responde mejor que Sql Server cuándo separas los índices y los direccionas a un arreglo de discos de mayor velocidad y para eso no necesito documentos o comparaciones sesgadas.
Precisamente, amigo poliburro, las pruebas de comparaciones son para el resto de los x millones de personas que no lo han podido testear personalmente.

Cita:
Empezado por poliburro
(los gráficos estadísticos) Cuándo se tratan datos duros y fidedignos eso no es verdad.
Las gráficas y resultados muestran lo que tú denominas "datos duros y fidedignos", correcto. Pero la interpretación que hace cada uno de esos datos sí que es distinta, por supuesto que es distinta para cada persona.

Cita:
Empezado por poliburro
Si hablamos de un motor gratuito y multiplataforma yo elijo al ciento por cieto PostgreSql.
Muy buena elección, mis preferidos entre los libres (no porque sean gratuitos) y multiplataforma son firebird y postgresql. Este último es mucho más apropiado para muy grandes empresas porque admite clusters y otras características muy interesantes.

A donde yo quería llegar es que una empresa que necesita soluciones para sus servidores y sistemas de bases de datos... y ofrecerle ms sql server con windows... para mí eso no es ofrecerle una solución, eso es ofrecerle un problema, y caro.
De verdad que yo no puedo llegar a una empresa ofreciendo un servidor windows, me daría vergüenza ofrecer eso, bueno, no es que "me daría", es que "me da", no puedo hacerlo, es justo todo lo contrario a profesional y serio, tengo la sensación de estar engañándolos.
Otra cosa distinta es que esa empresa tenga un software que necesite por fuerza funcionar con windows, ahí no queda más remedio.

Cita:
Empezado por poliburro
En resumen y con relación al tema de este hilo....
Agregaremos el retorno de múltiples resultsets a la lista de características que no soporta Firebird, Ok que no lo usas o no lo requieres ok, pero al final no lo soporta.
Pues no digo que sí ni tampoco digo que no, lo que puedo decir es que no lo sé porque nunca me había interesado por ello, aunque suena interesante y curioso.
Lo más que se ha podido comentar aquí es que alguien preguntó en 2007 por ello, de eso hace 5 años, no sé si lo habrán implementado.

Y en cuanto a las otra "larga lista" de cosas que no soporta firebird, leer xml o importar/exportar a excel, texto o csv... pues me parece ridículo, sin importancia, no es necesario (aunque hay utilidades de sobras para hacerlo) porque un RDBMS no tiene que dedicarse a esas cosas, tal y como dice mightydragonlor.


Espero que el "ardor" del debate no enturbie las relaciones personales
Responder Con Cita
  #27  
Antiguo 09-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Y en cuanto a las otra "larga lista" de cosas que no soporta firebird, leer xml o importar/exportar a excel, texto o csv... pues me parece ridículo, sin importancia, no es necesario (aunque hay utilidades de sobras para hacerlo) porque un RDBMS no tiene que dedicarse a esas cosas, tal y como dice mightydragonlor.


Espero que el "ardor" del debate no enturbie las relaciones personales
Es lógico que supongas que el soporte xml en una base de datos no tiene importancia. Pues entiendo que lo haces desde el punto de hablar sin saber. Pronto escribiré un artículo en mi blog sobre el manejo de XML en una base de datos.

Y no amigo... un debate, sin importar lo álgido, mientras no exceda los límites del insulto es siempre benéfico para todas las partes.

Saludos
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #28  
Antiguo 09-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por poliburro Ver Mensaje
Es lógico que supongas que el soporte xml en una base de datos no tiene importancia. Pues entiendo que lo haces desde el punto de hablar sin saber. Pronto escribiré un artículo en mi blog sobre el manejo de XML en una base de datos.
Aunque, para aportar a este debate que comenzaste, bien podías aportar un poco aquí para iluminarnos, ¿no crees?

// Saludos
Responder Con Cita
  #29  
Antiguo 09-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por poliburro Ver Mensaje
Es lógico que supongas que el soporte xml en una base de datos no tiene importancia. Pues entiendo que lo haces desde el punto de hablar sin saber.
Sí, es lo normal en mí, acostumbro a hablar sin saber.
Responder Con Cita
  #30  
Antiguo 09-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y volviendo al tema original, ¿qué ventaja representa devolver tres recordsets en lugar de hacer un join normalito que enlace ls tres tablas?

Y sí. No lo sé. Por eso pregunto.

// Saludos
Responder Con Cita
  #31  
Antiguo 09-11-2012
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
Es lógico que supongas que el soporte xml en una base de datos no tiene importancia. Pues entiendo que lo haces desde el punto de hablar sin saber. Pronto escribiré un artículo en mi blog sobre el manejo de XML en una base de datos.

Y no amigo... un debate, sin importar lo álgido, mientras no exceda los límites del insulto es siempre benéfico para todas las partes.
No creo que tildar a alguien de hablar sin saber sea la mejor manera de entablar un debate, máxime cuando Casimiro no habla sin saber.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #32  
Antiguo 09-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sí, es lo normal en mí, acostumbro a hablar sin saber.
Pues esa impresión me das estimado Casimiro, máxime cuando no me dices el por qué es irrelevante el uso de xml en bases de datos cuando es algo que está defino en el Ansi SQL

http://en.wikipedia.org/wiki/SQL/XML
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #33  
Antiguo 09-11-2012
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por poliburro Ver Mensaje
Pues esa impresión me das estimado Casimiro, máxime cuando no me dices el por qué es irrelevante el uso de xml en bases de datos cuando es algo que está defino en el Ansi SQL

http://en.wikipedia.org/wiki/SQL/XML
Como bien dijiste. Mientras no se llegue al insulto.

----

Lo interesante de este debate es que la pregunta inicial nisiquiera ha sido contestada. ¿en la actualidad soporta o no devolver multiples recordset?. Habria que hacer las pruebas porque en google no he encontrado nada de eso.

Con respecto al debate:

No niego el grán rendimiento que tiene PostgreSQL y como mencionaron antes, en la vida real, el rendimiento depende mucho del diseño de la DB, la forma como el programa la utiliza, las técnologías para las comunicaciones y muchos factores. Y en mi experiencia he visto programas en Delphi y .Net conectados a MS-SQL, Oracle, Sybase, PostgreSQL e Informix ejecutar procesos muy lentos en servidores muy buenos.

Cuando una empresa me entrega la libertad de elegir el motor o puedo imponerlo , opto por PotgreSQL y en un pequeño programa POS que tengo los tiempos de respuesta son excelentes aún con un pc convencional con windows funcionando como servidor.

Pero si una empresa ya tiene una red montada con su datacenter, bases de datos, servicios de red, seguridad; Todo esto en windows, aunque suene como a blasfemia para casimiro, muchisimas empresas desde pequeñas hasta grandes basan su infraestructura en windows. Y de seguro pedirán que la nueva base de datos (la de nuestro aplicativo) se acomode a sus estandares de manejo y entre ello pedirán la integración del aplicativo con el active directory.

Si la eleción es PostgreSQL o firebird, habrá que instalar o crear algun producto que realice cambios en la seguridad del motor para asimilar los cambios en la seguridad de active directory y esto representa costos y posibles errores adicionales.

Para estos casos, lo mejor sería que nuestro aplicativo se acomode a muchos rdbms y si el cliente tiene MS-SQL, Oracle, MySQL, PostgreSQL o Firebird. Nuestro aplicativo pueda trabajar en todos ellos.

Lo mas seguro es que yo esté por otro camino del debate ya que ustedes han hablado mas del rendimiento uno vs otro pero para mi lo importante de elegir entre uno u otro depende de como beneficiará al cliente y como este se sentirá mas satisfecho. Por lo general a los gerentes (quienes firman los cheques) lo que les importa es la eficiencia en todo sentido y puede que para nosotros esos milisegundos sean muy importantes pero para estos dueños de empresas, lo que importa es cuanto costará un nuevo servidor nuevo teniendo un windows server instalado; Cuanto costará capacitar a su administrador de red para manejar un linux cuando el 99% de sus equipos es windows; Cuanto costará el nuevo soporte cuando ya tiene uno contratado y cuanto costará la integración de nuestro app con su esquema y protocolos.

Tener un aplicativo con esta felxibilidad es muy importante porque el cliente no deberá incurrir en costos adicionales de capacitación o contratación para un motor o un S.O. que normalmente no manejaban y en cambio entrega a nuestro aplicativo una valor agregado que marca la diferencia y nos termina representando la satisfacción del que firma el cheque y clientes finales y recomendaciones para nuevas oportunidades de negocio.

---
Algunas características en el rdbms ya sean ofrecidos desde instalación, característica adicional o complemento de tercero son muy importantes porque hacen que tu rdbms sea mas que un simple almacen de datos.

Por ejemplo, (en oracle) el manejo interno de XML permite consumir webservices desde los SP. Eso significaria que nuestro app solo llamaría un SP que consumiria el WS, validaria procesaría y almacenaria los resultados. El proceso sería muchisimo más rapido de seguro.

El cifrado de datos (Lo he visto en oracle con AES) podría ser muy funcional a la hora de almacenar información de vital para la compañía y que esté en el motor permitiría que los SP procesen y guarden datos cifrados sin la necesidad explicita que lo haga el app.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #34  
Antiguo 09-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por movorack Ver Mensaje
Lo mas seguro es que yo esté por otro camino del debate ya que ustedes han hablado mas del rendimiento uno vs otro pero para mi lo importante de elegir entre uno u otro depende de como beneficiará al cliente y como este se sentirá mas satisfecho.
Total y absolutamente concuerdo contigo. A lo largo de mi vida profesional mi apertura a usar el servidor de base de datos que se ajuste a los requerimientos de mis clientes es lo que me ha permitido conocer múltiples y variadas soluciones....

Por cierto, veo que tu blog no está habilitado, considero que podrías aportar muchisimo espero que pronto escribas en él. Un saludo
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #35  
Antiguo 09-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Y volviendo al tema original, ¿qué ventaja representa devolver tres recordsets en lugar de hacer un join normalito que enlace ls tres tablas?
Y, ¿hay respuesta para esto? O nos quedamos con que es parte del estandar

// Saludos
Responder Con Cita
  #36  
Antiguo 09-11-2012
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Bueno, cosas peores se han dicho aquí en los "debates" de la religión y de Apple, pero aún así, si vamos a ver con pinzas las palabras, pues....

Cita:
Y en cuanto a las otra "larga lista" de cosas que no soporta firebird, leer xml o importar/exportar a excel, texto o csv... pues me parece ridículo, sin importancia, no es necesario (aunque hay utilidades de sobras para hacerlo) porque un RDBMS no tiene que dedicarse a esas cosas, tal y como dice mightydragonlor.
Pero al margen de todo esto, yo difiero un poco en relación a que una solución profesional y seria siempre sea una solución libre, para mi una solución "profesional y seria" es ofrecer todas las alternativas para que el cliente tenga en sus manos todos los panoramas. Una cosa son las preferencias y otra es ofrecer todas las alternativas y a partir de ahí dejarle ver los pros y los contras.

Y ésto por supuesto incluye a las bases de datos y sigo sosteniendo que la mejor base de datos es la que te permite hacer todo lo que necesitas, yo no veo el factor costo, eso al final es relativo, habrá clientes que paguen el costo de una base de datos costosa, habrá clientes que quieran una base de datos sin costo.

Y como dice Román, yo también quiero saber para que sirve lo propuesto en el título de este hilo.

Saludos

PD. Y que conste que mi aprecio tanto por Casimiro y por Poliburro es muy alto.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #37  
Antiguo 09-11-2012
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Y, ¿hay respuesta para esto? O nos quedamos con que es parte del estandar

// Saludos

Amigo me avoco a tu duda planteada aquí:

Cita:
Empezado por roman
Y volviendo al tema original, ¿qué ventaja representa devolver tres recordsets en lugar de hacer un join normalito que enlace ls tres tablas?

Y sí. No lo sé. Por eso pregunto.
Siguiendo el ejemplo que he posteado en mi blog, si tienes las tablas de encabezado de venta, detalle de venta e información de clientes. devolver toda esa información como un solo join normalito te genera una tabla con la siguiente estructura:

filasdatoscliente, datosencabezadoventa, partidadeventa1
filasdatoscliente, datosencabezadoventa, partidadeventa2
filasdatoscliente, datosencabezadoventa, partidadeventa3
...........
filasdatoscliente, datosencabezadoventa, partidadeventaN

como puedes observar, hacer uso de joins para devolverver toda esa información agrupada es sumamente infeciente pues vas a devolver un recordset con información duplicada y que te exigirá seprarla en tu código para mostrarla en los diferentes repositorios.

Lo que hace la mayoria de programadores es primero consultar el maestro de ventas, luego el detalle de venta y para terminar los datos del cliente. Es la manera tradicional y por cada llamada debes estar haciedno consultas separadas o llamando a los procedimientos almacenados correspondientes. Eso está muy bien, pero si buscas optimizar las llamadas a la base de datos y aprovechar una sola conexión, pues, podrías optar por devolver los tres bloques separados y de esa manera te ahorras todo el trabajo de estar invocando consultas separadas.

esta es una técnica como tantras otras. Podrías decirme que puedes deolverlo en un gran bloque xml, o podrías decirme que prefieres hacer tres consultas a la base de datos o podrías decirme que devolverás todo en un solo gran resultset. Eso queda ya en ti como programador y tus criterios técnicos.
__________________
Conoce mi blog http://www.edgartec.com

Última edición por poliburro fecha: 09-11-2012 a las 17:38:56.
Responder Con Cita
  #38  
Antiguo 09-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por movorack Ver Mensaje
...
Cita:
Empezado por poliburro Ver Mensaje
Total y absolutamente concuerdo contigo. A lo largo de mi vida profesional mi apertura a usar el servidor de base de datos que se ajuste a los requerimientos de mis clientes es lo que me ha permitido conocer múltiples y variadas soluciones....
Estáis hablando de empresas que YA tienen instalado todo en windows, en ese caso es normal que no quieran cambiar, les da pánico.

Sobre el XML. Nadie ha dicho que no tenga sus especificaciones y sus normas y estándares. Lo que he dicho es que XML se usa para trapasar datos entre distintos programas (bases de datos/editores de textos/navegadores webs, etc.), pero el que un sistema de bases de datos RDBMS no tenga una función para leer o escribir ficheros XML no es importante. Suponiendo que firebird no lo tenga, hay muchas utilidades para importar/exportar datos XML con firebird, es más, se puede crear una UDF (función definida por el usuario), que es algo que sí tiene firebird... y ya tienes XML. Por eso digo que es algo ridículo y sin importancia. Ninguna base de datos va a ejecutar sentencias SQL contra un fichero de texto XML, sería ridículo, y si alguna lo hace... me parece más una curiosidad que algo práctico, pues debe ser ineficiente y lento a más no poder. Además de que entonces ¿para qué se usa una RDBMS?, ¿para trabajar con ficheritos de texto?

Cita:
Empezado por egostar Ver Mensaje
yo difiero un poco en relación a que una solución profesional y seria siempre sea una solución libre, para mi una solución "profesional y seria" es ofrecer todas las alternativas para que el cliente tenga en sus manos todos los panoramas. Una cosa son las preferencias y otra es ofrecer todas las alternativas y a partir de ahí dejarle ver los pros y los contras.
No recuerdo haber dicho eso, lo que he dicho es que windows no es una solución seria y profesional.
Responder Con Cita
  #39  
Antiguo 09-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por poliburro Ver Mensaje
Amigo me avoco a tu duda planteada aquí:
Siguiendo el ejemplo que he posteado en mi blog, si tienes las tablas de encabezado de venta, detalle de venta e información de clientes. devolver toda esa información como un solo join normalito te genera una tabla con la siguiente estructura:

filasdatoscliente, datosencabezadoventa, partidadeventa1
filasdatoscliente, datosencabezadoventa, partidadeventa2
filasdatoscliente, datosencabezadoventa, partidadeventa3
...........
filasdatoscliente, datosencabezadoventa, partidadeventaN

como puedes observar, hacer uso de joins para devolverver toda esa información agrupada es sumamente infeciente pues vas a devolver un recordset con información duplicada y que te exigirá seprarla en tu código para mostrarla en los diferentes repositorios.
Si la idea es buena, es curioso, nadie ha dicho que sea malo, es interesante, etc.

Lo único que ha ocurrido en todo esto es que, sin saberlo, añadiste a tu comentario (sin venir a cuento): "algo más por agregar a la larga lista de cosas que no soporta firebird".
Porque de momento nadie ha podido decir si lo implementa o no. Que puede ser que no lo implemente... seguramente es así.
¡¡¡Tantas cosas hay que hacen unos y que no hacen otros!!!
Responder Con Cita
  #40  
Antiguo 09-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por poliburro Ver Mensaje
devolver toda esa información como un solo join normalito te genera una tabla con la siguiente estructura:

filasdatoscliente, datosencabezadoventa, partidadeventa1
filasdatoscliente, datosencabezadoventa, partidadeventa2
filasdatoscliente, datosencabezadoventa, partidadeventa3
...........
filasdatoscliente, datosencabezadoventa, partidadeventaN

como puedes observar, hacer uso de joins para devolverver toda esa información agrupada es sumamente infeciente pues vas a devolver un recordset con información duplicada y que te exigirá seprarla en tu código para mostrarla en los diferentes repositorios.

Lo que hace la mayoria de programadores es primero consultar el maestro de ventas, luego el detalle de venta y para terminar los datos del cliente. Es la manera tradicional y por cada llamada debes estar haciedno consultas separadas o llamando a los procedimientos almacenados correspondientes. Eso está muy bien, pero si buscas optimizar las llamadas a la base de datos y aprovechar una sola conexión, pues, podrías optar por devolver los tres bloques separados y de esa manera te ahorras todo el trabajo de estar invocando consultas separadas.
Gracias por la respuesta

No dudo que pueda tener sus ventajas. Y no lo dudo para empezar porque ni siquiera tenía conocimiento de esta característica hasta hace unas horas.

Pero, sin ánimo de demeritar, no me parece que tu ejemplo sea clarificador. Para empezar, lo de los datos repetidos, pues todo depende de no hacer un select .* y escoger los campos adecuados de cada tabla.

Normalmente, lo que hacemos es un join para mostrar los datos más relevantes en una rejilla, y entonces hacer la o las consultas extras sólo para los registros que realmente nos interese. Es decir, no significa que vamos a hacer las consultas extra por cada uno de los registros de la consulta principal.

Entonces, a lo que me refiero, es que no veo, al menos en este caso específico, una clara ventaja.

-------

Por otra parte, un poco al margen; mencionas que además de SQL Server, hay oros motores que soportan la característica. En el caso particular de MySQL, yo ni siquiera lo mencionaría. Las pruebas que he hecho con procedimientos almacenados (ver. 5.1.x) dejan mucho que desear, dando resultados extremadamente lentos.

// Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda: "Record not found or changed by another user" alquimista_gdl Conexión con bases de datos 14 21-03-2009 20:09:21
Cursor "intermitente" al realizar consultas. mlara Firebird e Interbase 1 24-05-2008 02:51:26
Error Invalid blob handle in record buffer??? sin usar "Blobs to cache" varuhs Conexión con bases de datos 4 22-01-2007 21:19:53
¿Como Guardar un "RECORD" en un campo BLOB? sitrico Conexión con bases de datos 5 29-06-2004 17:32:01
"no current record for fetch operation" con procedimiento almacenado usado en Select Al González Firebird e Interbase 1 17-03-2004 21:13:17


La franja horaria es GMT +2. Ahora son las 04:51:08.


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