Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-07-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
Smile Eficiencia de Zeos

Hola amigos de club delphi, quisiera hacerles una consulta a nuestros expertos del foro.

- Quisiera saber que tan eficiente es un ZQuery (componente del paquete Zeos), si tendria unos 1,000 o mas registros que tendria
que mostrar en un dbgrid conectado a un Zquery , ya que al abrir el programa se tendrian que cargar todos y esto aria al programa
mas pesado. o como podria controlarlo para que al momento de iniciar el programa no necesariamente se tendria que cargar
todos los registros si no mas bien un determinado numero.

tal como se puede hacer con un ClientDataset, por medio del PacketRecords. si le ponemos 100 al momento de abrir solamente
cargaria los 100 ultimos registros y cuando se necesita mas carga otros 100.


mi inquietud viene porque yo estoy haciendo una aplicacion con zeos, pero mi temor es que a mayor cantidad de registros el programa tenga en memoria enpiece a colgarse o a tener fallos.

si me pueden ayudar se los agradecere mucho.
Responder Con Cita
  #2  
Antiguo 10-07-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Hola.

Yo no tengo experiencia con Zeos pero la lógica nos dice que cuantos menos registros manejes en memoria más eficiente será la aplicación. Si va más o menos lento irá en función de la instalación de hardware que tengas y eso es peligroso puesto que cuanto menos requerimientos de hardware tenga tu aplicación menos problemas tendrás en tus instalaciones en los clientes.

Por todo esto lo habitual es manejar querys de cuantos menos registros mejor por lo que deberías de optimizar en ese sentido todo lo que puedas.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 10-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mil registros no es nada, por supuesto, pero debes hacer caso a lo recomendado por Newtron, ¿para qué quieres 1000 registros en un dbgrid, los vas a leer uno a uno?, eso no sirve para nada. Hay que pensar en lo que realmente se necesita y se precisa, si se busca un cliente, un artículo, una factura, un dato, un loquesea... hay que acotar al máximo para encontrar y mostrar sólamente lo que se necesita. Lo dicho, mostrar 1000 registros no sirve para nada.
Responder Con Cita
  #4  
Antiguo 10-07-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
ver

Gracias por sus respuestas, lo que estoy haciendo es que los registros de una tabla se van a mostrar en un dbgrid , esto quiere decir que el ZQuery que esta ligado al dbgrid va a estar en modo Open. no soy experto en delphi soy novato pero supongo que al estar abierto el ZQuery cargaria todos los registros que contiene la tabla
es solo.una consulta para tomar precauciones. Creoque usare un ClientDataset
gracias por aclararme las dudas.
Responder Con Cita
  #5  
Antiguo 10-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un grid es solamente un "visor" del dataset que se le asocie, en tu caso un zquery, pero el grid es sólo eso, un visor.
Responder Con Cita
  #6  
Antiguo 10-07-2012
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Poder: 20
rretamar Va camino a la famarretamar Va camino a la fama
Cargar muchos registros en memoria me parece mala idea. Lo mejor es ir "segmentando" la información que se muestra (por ejemplo por días, semanas, por elementos asociados a un x ítem, etc.). Y si necesito hacer un proceso por lotes (por ejemplo cálculo de totales, cosas de ese tipo) que lo haga el mismo servidor, a través de un trigger o un procedimiento almacenado. La idea es reducir al mínimo el tráfico entre el cliente y el servidor SQL, y todo lo que se puede delegar, que se haga dentro del servidor.
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.

Última edición por rretamar fecha: 10-07-2012 a las 19:56:06.
Responder Con Cita
  #7  
Antiguo 10-07-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
Y luego el clientdataset no se puede conectar con los zeos y traer los registros necesarios?

Solo es una duda
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #8  
Antiguo 10-07-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Zeos es bastante eficiente en cuestiones de velocidad. Me atrevo a decir que funciona mucho mejor que muchos componentes de paga y prácticamente no dan problemas. Lo que quieres hacer lo puedes realizar mediante ClientDataset ya que Zeos es simplemente el proveedor de datos para él.

No tiene mucho sentido traerse todos los registros de una tabla solo para mostrarlos en un grid. Esa costumbre viene de la época dBASE en donde no había forma de abrir una tabla y traerse solo unos cuantos registros y por ende los "grids" de aquella época mostraban todo el contenido. Ahí se trabaja a la inversa: se traían todos los registros y luego se buscaba dentro de ellos, con la llegada de SQL la cosa cambió, ahora se pregunta (query) que se quiere y se traen solo los datos necesarios.

Un ejemplo, catálogo de clientes, en un esquema clásico abriamos toda la tabla, mostrabamos toditos los clientes y luego metiamos alguna forma de buscar dentro de ellos (se popularizaron entonces las famosas "busquedas rápidas" en donde conforme escribias iba filtrándose lo que más se parecía. En el esquema SQL primero preguntamos algunos parámetros , por ejemplo las letras que contiene el nombre o nombres que buscamos y luego traemos todo lo que concida.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #9  
Antiguo 11-07-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
excelente intercambio de ideas creoque boy comprendiendo como funciona la programacion para tener una aplicacion de calidad.
lo que dice rretamar yAzidRain me parece bien. creoque traerse todos los registros de una tabla el programa se volveria pesado y habrian problemas.

lo que quiero es que me den una idea disculpen la incapacidad que tengo para crear un codigo que haga este trabajo, les comento que soy nuevo en este hermoso Arte de la programacion y Zeos para mi es una excelente libreria y por eso quiero evitar usar otros componentes si es que hay solucion.

lo que deseo es si hay alguna manera de cargar solamente un limite de registros en un ZQuery, por ejemplo si tengo 1,000 en una tabla.
solamente quisiera cargar 100 y cada vez que necesite ir mas atras traiga otros 100. lo digo porque en el mismo formulario he puesto un TEdit para poder buscar y filtrar los registros que coincidan con el texto que se ingresa en el edit.

solamente quiero que me ayuden con lo del ZQuery.

gracias por los comentarios son de mucha ayuda.
Responder Con Cita
  #10  
Antiguo 11-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si quieres saber "lo máximo" de delphi y bases de datos, entonces te recomiendo este libro.
Responder Con Cita
  #11  
Antiguo 11-07-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por camiz Ver Mensaje
lo que dice rretamar yAzidRain me parece bien
....vaya.... ¿y a mi que me parta un rayo?
__________________
Be water my friend.
Responder Con Cita
  #12  
Antiguo 11-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
....vaya.... ¿y a mi que me parta un rayo?
Cria cuervos y ...
Responder Con Cita
  #13  
Antiguo 11-07-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
disculpas

nos es que los aportes de newtron y casimiro no los aya considerado, si no que simplemente se me paso. quiero agradecerles a ustedes por permitirse contribuir con sus aportes a ayudar que otros oprendamos o quisas refuersen sus conocimientos. y tambien quiero disculparme con todos los que han hecho un comentario quitandose un pedasito de su tiempo y claro que lo mas justo es un simple y sincero gracias.

un saludo y un abraso a todos ustedes. y a seguir ayudando a los que nesecitan de ustedes.... desde mi querido . *** PERU ***...
Responder Con Cita
  #14  
Antiguo 11-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Venga, ahora te pasamos la dirección donde tienes que enviar los regalos: pisco sour, chicha morada, etc.
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
Eficiencia indices?¿? Como sacar lo mejor? CHiCoLiTa SQL 5 07-09-2010 04:25:04
Sistema de Notificacion de Produccion y Eficiencia Fiebru Debates 0 04-01-2010 15:18:10
La eficiencia de una conexión ADO gcaffe Conexión con bases de datos 1 24-05-2007 18:03:26
Eficiencia master/detail Luis Castillo Conexión con bases de datos 2 08-11-2005 18:25:04


La franja horaria es GMT +2. Ahora son las 18:38:23.


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