Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-12-2022
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Insert lento

feliz inicio de fiestas:

tengo un insert en sql server que es muy lento, quiero saber si hay alguna forma de mejorarlo y ponerlo mas rapido

Código Delphi [-]
begin
   if Label26.Text = 'InExistente' then
       begin
       UniQueryVisitantesVal.Close;
       UniQueryVisitantesVal.SQL.Clear;
       UniQueryVisitantesVal.SQL.Add('INSERT INTO visitantes (Nom_Vis,Apell_Vis,Rut_Vis,Foto,Num_dep_Vis,Edif_vis,Estatus,Usuario_mod,otro)');           //
       UniQueryVisitantesVal.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut_Vis, :Foto, :Num_dep_Vis, :Edif_vis, :Estatus, :Usuario_mod, tro)');                      //,
       UniQueryVisitantesVal.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
       UniQueryVisitantesVal.ParamByName('Rut_Vis').AsString := LabelRutVis.Text;
       UniQueryVisitantesVal.ParamByName('Foto').Assign(Image4.bitmap);
       UniQueryVisitantesVal.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
       UniQueryVisitantesVal.ParamByName('Edif_vis').AsString := 'XXX';
       UniQueryVisitantesVal.ParamByName('Estatus').AsString := 'ACT';
       UniQueryVisitantesVal.ParamByName('Usuario_mod').Asstring := 'TOTEM';
       UniQueryVisitantesVal.ParamByName('otro').Asstring := 'E';
       UniQueryVisitantesVal.ExecSQL;
       begin
       UniQueryVisitasIngreso.Close;
       UniQueryVisitasIngreso.SQL.Clear;
       UniQueryVisitasIngreso.SQL.Add('INSERT INTO visitas (Nom_Vis,Apell_Vis,Rut__Vis,Foto,Num_dep_Vis,Piso__Vis,Edif_Vis,Hora_In_Vis, Num_Vis,Usuario_mod,otro)');           //
       UniQueryVisitasIngreso.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut__Vis, :Foto, :Num_dep_Vis, :Piso__Vis, :Edif_Vis, :Hora_In_Vis, :Num_Vis, :Usuario_mod, tro)');                      //,
       UniQueryVisitasIngreso.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
       UniQueryVisitasIngreso.ParamByName('Rut__Vis').AsString := LabelRutVis.Text;
       UniQueryVisitasIngreso.ParamByName('Foto').Assign(Image4.bitmap);
       UniQueryVisitasIngreso.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
       UniQueryVisitasIngreso.ParamByName('Piso__Vis').AsString := 'XXX';
       UniQueryVisitasIngreso.ParamByName('Edif_Vis').AsString := 'XXX';
       UniQueryVisitasIngreso.ParamByName('Hora_In_Vis').AsDateTime := Now;
       UniQueryVisitasIngreso.ParamByName('Num_Vis').AsString := 'XXX';
       UniQueryVisitasIngreso.ParamByName('Usuario_mod').Asstring := 'TOTEM';
       UniQueryVisitasIngreso.ParamByName('otro').Asstring := 'E';
       UniQueryVisitasIngreso.ExecSQL;
       end
       end
       else
          begin
          UniQueryVisitasIngreso.Close;
          UniQueryVisitasIngreso.SQL.Clear;
          UniQueryVisitasIngreso.SQL.Add('INSERT INTO visitas (Nom_Vis,Apell_Vis,Rut__Vis,Foto,Num_dep_Vis,Piso__Vis,Edif_Vis,Hora_In_Vis, Num_Vis,Usuario_mod,otro)');           //
          UniQueryVisitasIngreso.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut__Vis, :Foto, :Num_dep_Vis, :Piso__Vis, :Edif_Vis, :Hora_In_Vis, :Num_Vis, :Usuario_mod, tro)');                      //,
          UniQueryVisitasIngreso.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
          UniQueryVisitasIngreso.ParamByName('Rut__Vis').AsString := LabelRutVis.Text;
          UniQueryVisitasIngreso.ParamByName('Foto').Assign(Image4.bitmap);
          UniQueryVisitasIngreso.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
          UniQueryVisitasIngreso.ParamByName('Piso__Vis').AsString := 'XXX';
          UniQueryVisitasIngreso.ParamByName('Edif_Vis').AsString := 'XXX';
          UniQueryVisitasIngreso.ParamByName('Hora_In_Vis').AsDateTime := Now;
          UniQueryVisitasIngreso.ParamByName('Num_Vis').AsString := 'XXX';
          UniQueryVisitasIngreso.ParamByName('Usuario_mod').Asstring := 'TOTEM';
          UniQueryVisitasIngreso.ParamByName('otro').Asstring := 'E';
          UniQueryVisitasIngreso.ExecSQL;
          end;
end;
Responder Con Cita
  #2  
Antiguo 24-12-2022
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Esos "begin" no concuerdan con esos "end";
Responder Con Cita
  #3  
Antiguo 24-12-2022
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Y que es "lento"?

Como puede ser lento un simple insert? Hay un trigger oculto que hace cientos por ahi?

Que te dice el query planner?

P.D: Checa http://www.clubdelphi.com/foros/showthread.php?t=93348
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 27-12-2022
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.278
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
Estoy de acuerdo con [mamcx].
¿Qué significa lento?

Un insert por si sólo no debería ser lento y ese código difícilmente es mejorable (sólo hace un INSERT).
__________________
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
  #5  
Antiguo 27-12-2022
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.278
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
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Estoy de acuerdo con [mamcx].
¿Qué significa lento?

Un insert por si sólo no debería ser lento y ese código difícilmente es mejorable (sólo hace un INSERT).
Además de lo que ya te han preguntado... ¿Hay índices? ¿Cuantos registros tiene la tabla?
__________________
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 27-12-2022
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Además de lo que ya te han preguntado... ¿Hay índices? ¿Cuantos registros tiene la tabla?
la tabla no tiene indice y tiene solo 6 registros
Responder Con Cita
  #7  
Antiguo 27-12-2022
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.278
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
Cita:
Empezado por giantonti1801 Ver Mensaje
la tabla no tiene indice y tiene solo 6 registros
Pues con esa información no se qué quiere decir "lento", pero debería ser inmediato (salvo que haya triggers que hagan más cosas).
¿SQLServer o en Red?
Si es en red, para realizar pruebas, puedes instalar un SQLServer en local y comparar velocidades. Si hay mucha diferencia, tal vez sea achacable a problemas de red/comunicaciones (por ir descartando).
__________________
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
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
Insert masivo de datos, cada vez mas lento papote654 MS SQL Server 14 16-05-2012 18:02:17
MySQL LENTO al hacer INSERT INTO sucesivamente golf2008 MySQL 5 19-12-2008 00:59:54
Procedure en Firebird lento o IbQuery lento capo979 Firebird e Interbase 14 17-07-2007 21:35:36
Un Insert muy lento......... sitrico Conexión con bases de datos 9 30-05-2005 15:52:21
Insert me cierra otro Insert motrildelphi Conexión con bases de datos 0 05-05-2005 12:20:27


La franja horaria es GMT +2. Ahora son las 05:46:59.


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