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 14-07-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.058
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por movorack Ver Mensaje
... tengo un compañero algo terco que y no he hallado la respuesta técnica para terminar de convencerlo.
Tú dile que esa forma de poner los parámetros cómo él usa es la típica de los novatos
Responder Con Cita
  #2  
Antiguo 14-07-2014
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
A ver la cuestión no es de forma sino de fondo, y la verdad no me he hecho entender.

Mi compañero novato no es y el usa constantemente los parámetros al igual que yo y siempre he escuchado que lo mejor es usar consultas paramétricas porque son mas eficientes ya que son cacheadas en el motor pero hasta ahora no he encontrado información técnica de esto y ahí es donde está la "terquedad" de mi compañero de usarlo aunque para el el argumento de uso no es concluyente.

Hasta ahora para ambos, el tema del cacheado de la consulta paramétricas es como si fuese una leyenda urbana. Todos hablan de eso y hasta creen en eso pero no han encontrado pruebas de eso.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 15-07-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola movorack.
Cita:
Empezado por movorack Ver Mensaje
Tengo una pequeña duda con respecto a la eficiencia de ejecución de las consultas paramétricas vs consultas estáticas.
Lo dicho por Casimiro y duilioisola, usar parámetros es superior en todos los aspectos.

Cita:
Empezado por movorack Ver Mensaje
Si! eso es lo que siempre he manejado pero tengo un compañero algo terco que y no he hallado la respuesta técnica para terminar de convencerlo.
Para muestra basta un botón... Que pruebe este ejemplo con solo dos columnas:
Código Delphi [-]
const
  NO_ROWS = 100000;
var
  Freq, Start, Stop: Int64;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Font.Name:= 'Currier';
  QueryPerformanceFrequency(Freq);
end;

procedure TForm1.btnStaticClick(Sender: TObject);
var
  i: Integer;
  tt: Double;
begin
  with IBQuery1 do
  begin
    Close;
    SQL.Text:= 'DELETE FROM TEST';
    ExecSQL;
    QueryPerformanceCounter(Start);
    Close;
    for i:= 1 to NO_ROWS do
    begin
      SQL.Clear;
      SQL.Add('INSERT INTO TEST(ID,NOMBRE)');
      SQL.Add('VALUES('+QuotedStr(IntToStr(i))+', '+
        QuotedStr('Nombre '+IntToStr(i))+')');
    end; 
    ExecSQL;
  end;
  QueryPerformanceCounter(Stop);
  tt:= (Stop-Start)*1000000 div Freq;
  Memo1.Lines.Add(Format('Estatico            : %s ms.',[FormatFloat('0,', tt)]));
end;

procedure TForm1.ParameterClick(Sender: TObject);
var
  i: Integer;
  tt: Double;
begin
  with IBQuery1 do
  begin
    Close;
    SQL.Text:= 'DELETE FROM TEST';
    ExecSQL;
    QueryPerformanceCounter(Start);
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO TEST(ID,NOMBRE)');
    SQL.Add('VALUES(:ID,:NOMBRE)');
    Prepare;
    for i:= 1 to NO_ROWS do
    begin
      ParamByName('ID').AsInteger:= i;
      ParamByName('NOMBRE').AsString:= Format('Nombre %d',[i]);
    end; 
    ExecSQL;
  end;
  QueryPerformanceCounter(Stop);
  tt:= (Stop-Start)*1000000 div Freq;
  Memo1.Lines.Add(Format('Parametrizado: %s ms.',[FormatFloat('0,', tt)]));
end;
En mi caso obtuve estos resultados:
Código:
Estatico     : 665.696 ms.
Parametrizado: 135.562 ms.
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 15-07-2014 a las 00:37:34.
Responder Con Cita
  #4  
Antiguo 15-07-2014
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
Gracias, TOPX también te lo agradece
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #5  
Antiguo 15-07-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
También hay que mencionar que si se utiliza una sola vez el Query, es posible que incluso tarde más la versión parametrizada.
El cacheo se realiza como en el ejemplo de eficsa cuando se reutiliza el SQL una y otra vez.

De todos modos, por facilidad de lectura, por evitar transformaciones a los datos para volverlos strings y finalmente por el cacheo en el caso de utilización repetida del mismo SQL, creo que se debe utilizar.
Responder Con Cita
  #6  
Antiguo 15-07-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.058
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Los parámetros ganan por goleada
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
consultas sql ely15 SQL 2 01-04-2008 00:51:54
consultas con like Choclito Firebird e Interbase 1 02-01-2008 21:11:44
Consultas con SQL luxus Conexión con bases de datos 6 26-06-2006 15:19:35
Consultas SQL V.S. Consultas Clipper AGAG4 SQL 7 20-12-2005 15:59:31
Dos consultas en una Petolansa SQL 5 16-08-2005 07:39:48


La franja horaria es GMT +2. Ahora son las 20:22:07.


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