Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2008
chass chass is offline
Miembro
 
Registrado: jun 2008
Posts: 24
Poder: 0
chass Va por buen camino
Question cual es mas rapido???

buenos dias gente: tengo una duda y es la siguiente
sucede que tengo que optimizar la velocidad de procesamiento de un sistema y al ver el codigo me di cuenta que inserta registro en una base de datos firebird desde la interfaz delphi de la siguiente manera:

(en pseudo delphi)


contador: integer;
begin
contador:=0;
while contador=numero_de_registros
begin
//hace un select de una tabla primero y como
//esta en un sqlquery lo ejecuta de la siguiente mnera
data.Params[0].AsTime:=var1.date;
data.Close();
data.Open();
//el resultado se almacena en un dataset
if va1=dataset.fields[0].asdate then
begin
//no hace nada
end

else
begin
//inserta si la comparacion es falsasqlquery.sql.add('insert into table(val1,val2) values'+ var1+','+ var2);
sqlquery.execsql();
contador++;
end;
end;

si inserta 1 o 10 o hasta 25 registro la velocidad es aceptable
pero al insertar 100 o 300 registro me tarda como 2 minutos..
mi pregunta es si al realizar una especie de procedimiento almacenado no se optimizaria un poco mas ?
Desde paraguay les mando un gran abrazo y muchas gracias por su ayuda
Responder Con Cita
  #2  
Antiguo 15-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por chass Ver Mensaje
...mi pregunta es si al realizar una especie de procedimiento almacenado no se optimizaria un poco mas ?
En absoluto amigo, con procedimientos almacenados los datos se mueven más rápido porque la base de datos hace todo el trabajo.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 15-10-2008
chass chass is offline
Miembro
 
Registrado: jun 2008
Posts: 24
Poder: 0
chass Va por buen camino
muuuuuuuuuuuchas gracias.. es que tengo dos dias para optimizar entr el 60 y 80% por lo menos ese proceso..
gracias
Responder Con Cita
  #4  
Antiguo 15-10-2008
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 enecumene Ver Mensaje
En absoluto amigo, con procedimientos almacenados los datos se mueven más rápido porque la base de datos hace todo el trabajo.

Saludos.
Hola ene, a mi me gustaría saber porqué es más rápido en este caso. Los datos que se insertan de cualquier forma tienen que viajar del cliente al servidor ¿no?

// Saludos
Responder Con Cita
  #5  
Antiguo 15-10-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Hola ene, a mi me gustaría saber porqué es más rápido en este caso. Los datos que se insertan de cualquier forma tienen que viajar del cliente al servidor ¿no?

// Saludos
La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y solo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

Saludos
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #6  
Antiguo 15-10-2008
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
Amigo, dame algo más digerible . A ver, una sentencia INSERT también la ejecuta el servidor, ¿qué no? Y, ¿qué necesito mandarle? Los datos que voy a insertar. ¿Qué le tengo que mandar al procedimiento almacenado? Supongo que también los datos, ¿qué no?

Mencionas que el servidor posee acceso directo a los datos que necesita manipular, pero, ¿cuáles datos? Si apenas los voy a insertar, el servidor no tiene esos datos ¿o sí?

Vamos, entiendo, que si voy, por ejemplo, a transferir datos de una tabla a otra, o manipular muchos registros que ya existen en el servidor, desde luego será más rápido dejarlo todo en manos de éste, pero en este caso de inserciones no termino de entender cuál es la ventaja por sobre, digamos, un prepared query.

// Saludos
Responder Con Cita
  #7  
Antiguo 15-10-2008
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
a parte de la discusión, no entiendo el proceso de inserciones.
Puedes revisar el código o explicarlo con un pequeño juego de ensayo?
Por otro lado, si tienes componentes visuales asociados a los dataset, te recomiendo desconectarlos previamente y luego volverlos a conectar. Se ahorra muchísimo tiempo evitando el refresco de los datos en la pantalla.

Dataset.DisableControls;

tu codigo

Dataset.EnableControls


Suerte.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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
Ayudenme Rapido, Rapido omarys Varios 6 04-06-2011 09:45:34
¿Qué es más rapido? jcarteagaf Humor 3 05-07-2008 02:48:58
¿Cuál es su distribución favorita?, y ¿cuál considera la más segura? ArdiIIa La Taberna 11 24-07-2007 23:59:54
Cual es la razon por la cual perdura la memoria? jhonny Noticias 0 30-01-2007 00:41:38
Saber exactamente cual es cual en un DBLookUpComboBox bustio OOP 3 03-02-2005 23:16:58


La franja horaria es GMT +2. Ahora son las 04:16:49.


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