Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2011
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Lento al actualizar datos (update) en registros de BD postgre

Hola tengo una base de datos en postgre con una tabla que contiene 9000 registros, en esta base se conectan 10 usuarios simultáneamente y están actualizando información en registros diferentes, los datos si se guardan pero siento que es un poco lento, hablo aproximadamente de 5 segundos por cada dato que se actualiza a veces mas o menos, uso delphi 2010, mi conexión la hice la primera ves con componentes zeos y solo ocupe un ZConnection y un ZQuery pero al ver lo lento que era lo cambie por los componentes que vienen en delphi en BDE entonces puse un tdatabase y un tquery y mi conexion por medio de un odbc, pero aun asi sigue super lenta, no se si sea la manera correcta de hacerlo pues por lo general había trabajado con un solo usuario y las actualizaciones eran rápidas en otros programas diferentes a este,pero no se si cambie si varios usuarios van hacer uso de la misma base o conexión practicamente todo mi codigo es esto:
Código Delphi [-]

Formquerys.Querybase.Close;
FormQuerys.Querybase.SQL.Clear;
FormQuerys.Querybase.SQL.Add('update tabla1 set campoa1='''+edit1.text+''' where folioe='''+EditfOLIO.text+''' ');
FormQuerys.Querybase.ExecSQL;
y sin embargo se tarda aproximadamente 5 segundos, no se si con un tdatabase y un tquery sea lo único necesario que necesite para tener una buena conexión o si el problema este en la base de datos, por cierto no se si también afecte o tenga que ver, pero a la ves que actualizo un dato también hago un insert en otra tabla en la misma base de datos, aparentemente el insert si es rapido (menos de un segundo)..

Cualquier comentario o sugerencia que me pueda ayudar o dar una pista se los agradeceré ..

__________________
En movimiento...
Responder Con Cita
  #2  
Antiguo 03-08-2011
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
Hola,

1. No! nunca! jamas! ni en sueños! ni loco! recomendaria pasar de Zeos a BDE.
2. debes revisar si la tabla tiene triggers a ver si eso está haciendo lenta la actualización
3. Revisaria la configuración de PostgreSQL en el servidor... asignación de memoria nucleo en que trabaja, carga de red... cosas así

Estamos en contacto.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 03-08-2011
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Gracias movorack por tu respuesta

1.-Me intriga tu respuesta no.1 No! nunca! jamas! ni en sueños! ni loco! recomendaria pasar de Zeos a BDE.
jaja tan tragico es?.. la verdad que he leido que ya no es bueno utilizar el bde de delphi y por lo general
hago el intento por ya no utilizarlo pero todo parece apuntar que es lo que se seguira utilizando
he comentado en los foros y a ciencia cierta no me dan una respuesta concreta de por que ya no
y me sorprende por que aun en delphi 2010 lo siguen utilizando y los componentes zeos pues los he utilizado
antes y no he tenido problema pero estos ultimos que utilizo son todavia de prueba por que no hay zeos para delphi2010 ya liberados
entonces por eso pense que tal ves ahi pudiera estar el problema, aparte de que parece ser que son un poco mas lentos que los componentes
que delphi trae pero para mi en teoria casi tardan lo mismo..la verdad que no he hecho pruebas tan especificas como algunos compañeros del club
2.- la tabla no contiene triggers solo algunos constrains simples como llaves principales o campos autonumericos
3.- yo estoy casi seguro que es la red o algo por parte del servidor pero no tengo manera de medir el trafico de la red o el ancho de
banda que tengo disponible, ahora por otro lado la base de datos que tengo en postgre tiene su origen en un DBF que por medio de un programa
lo trasformo a sql, al montar la tabla en postgre solo asigno una llave primaria y eso es todo, cres que se me paso algo mas?..
__________________
En movimiento...
Responder Con Cita
  #4  
Antiguo 03-08-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.457
Poder: 20
newtron Va camino a la fama
Hola.

Igual digo una tontería pero ¿tienes creado un índice para el campo "folioe"?

Saludos
Responder Con Cita
  #5  
Antiguo 03-08-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La verdad es que es un tiempo "excesivo".

Cita:
Empezado por thelibmx Ver Mensaje
3.- yo estoy casi seguro que es la red o algo por parte del servidor pero no tengo manera de medir el trafico de la red o el ancho de banda que tengo disponible, ahora por otro lado la base de datos que tengo en postgre tiene su origen en un DBF que por medio de un programa lo trasformo a sql, al montar la tabla en postgre solo asigno una llave primaria y eso es todo, cres que se me paso algo mas?..
Se trataría de ver qué sentencia es exactamente y lanzarla desde un programa externo a Delphi.
No se si tienes alguna herramienta de administración. Con eso descartas que sea problemas de los componentes de conexión.
Si desde un programa externo tarda también mucho ya sabes que no tiene que ver con Zeos.


Cita:
Empezado por newtron Ver Mensaje
Igual digo una tontería pero ¿tienes creado un índice para el campo "folioe"?
Yo también lo he pensado, pero con 9000 registros, aunque no tuviera índices, es demasiado tiempo. De todas formas, sea de una manera u otra el índice ayudará (si no lo tienes).

Cita:
Empezado por movorack Ver Mensaje
...No recomendaria pasar de Zeos a BDE.
+1
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 04-08-2011
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Thumbs up

Gracias por responder, después de hacer revisiones entre dos cabezas <con ayuda de otro programador> vimos que lo que hacia lento el programa no era el query ni los componentes, se me paso decir que también cargaba 4 imágenes a la vez de un servidor, en el cual tengo aproximadamente 140,000 imágenes, entonces prácticamente lo que tardaba era la carga y búsqueda de las imágenes y no el query, ya que al des-habilitar las imágenes los querys funcionaron y no tardaron ni un segundo, las imagenes las mandaba llamar directamente desde su ruta sin embargo el programador hizo una funcion y las imagenes se pasaron tipo web por http y aparentemente el programa ya quedo bien. las imagenes aunque son las mismas no tardan ni un segundo en cargar, por lo que el programa ya funciona muy bien, mi tabla no la tengo indexada pero en si ya como trabaja el programa y la velocidad que tiene creo que ya no sera necesario, hablo aproximadamente de medio segundo por transaccion, aparte de que no hago insert ni deletes en esa tabla en especifico.

Les agradezco mucho su ayuda y atención movorack, newtron , Neftali y disculpen que no haya mencionado las imágenes, tal ves hubiéramos encontrado la solución mas pronto

Gracias totales..
__________________
En movimiento...

Última edición por thelibmx fecha: 04-08-2011 a las 06:18:36.
Responder Con Cita
  #7  
Antiguo 16-01-2012
Avatar de jejo1984
jejo1984 jejo1984 is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 39
Poder: 0
jejo1984 Va por buen camino
sera mejor que crees un procedimiento almacenado
Responder Con Cita
  #8  
Antiguo 16-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, jejo1984, fíjate que son hilos antiguos los que estás contestando. Si lo vas a resucitar, al menos, ofrece una respuesta completa y detallada. Gracias.
Responder Con Cita
  #9  
Antiguo 16-01-2012
Avatar de jejo1984
jejo1984 jejo1984 is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 39
Poder: 0
jejo1984 Va por buen camino
Vamos Casimiro se supune que es un foro el tema aún no esta cerrado por que no dice o describes que este tema ya esta cerrado
Responder Con Cita
  #10  
Antiguo 16-01-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Nadie a dicho que no puedas contestar este o cualquier otro, tan sólo he aconsejado que ya que los contestas, que lo hagas con más "fundamento"
En caso contrario, no estás aportando nada.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Locate Lento con muchos registros con ADOQuery por indice clave primaria en Access Rako Conexión con bases de datos 4 02-06-2011 15:25:27
actualizar con update Paty´s OOP 6 25-02-2010 18:16:16
agregar postgre a foro de base de datos thelibmx Debates 4 04-12-2007 00:19:16
Actualizar tabla con datos de otra tabla mediante UPDATE Rockin Firebird e Interbase 18 28-11-2007 20:15:42
Update tarda en actualizar mi tabla...... uper SQL 1 14-09-2005 05:23:28


La franja horaria es GMT +2. Ahora son las 13:18:30.


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