Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 04-09-2017
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.870
Poder: 14
oscarac Va por buen camino
Velocidad Firedac Vs ADO

recientemente instale Xe7 y quise comprobar la conexión Firedac (Natica segun entiendo), me habían dicho que es mucho mas rápida, asi que hice una prueba simple

me conecté mediante Firedac y Ado a una misma base de datos, accediendo a la informacion de una tabla con 38,900 registros
aqui los comentarios

En modo diseño, la conexión de Firedac demoro menos de 1 segundo, mientras que Ado demoro unos 4 segundos
hice un barrido de la data y mientras en Ado se demoro 9 segundos, en Firedac solo demoro 2

preguntas...

que tan potente es Firedac comparado con Ado o con otros "componentes" para acceder o recopilar informacion en bases de datos grandes?

esta fue la prueba que hice

Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, FireDAC.Stan.Intf, FireDAC.Stan.Option,
  FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def,
  FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.MSSQL,
  FireDAC.Phys.MSSQLDef, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf,
  FireDAC.DApt, Vcl.StdCtrls, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
  Vcl.Grids, Vcl.DBGrids, Data.Win.ADODB, FireDAC.VCLUI.Wait, FireDAC.Comp.UI,
  Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
    FDConnection1: TFDConnection;
    FDQuery1: TFDQuery;
    Button1: TButton;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    FDGUIxWaitCursor1: TFDGUIxWaitCursor;
    DBGrid2: TDBGrid;
    DataSource2: TDataSource;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    Button2: TButton;
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  FDConnection1.Connected := False;
  FDConnection1.Connected := True;
  FDQuery1.OpenOrExecute;
  Label1.Caption := TimeToStr(time);
  FDQuery1.First;
  while not FDQuery1.eof do
  Begin
    FDQuery1.Next;
  End;
  Label2.Caption := TimeToStr(time);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOConnection1.Connected := False;
  ADOConnection1.Connected := True;
  ADOQuery1.Open;
  adoQuery1.First;
  Label3.Caption := TimeToStr(time);
  while not adoQuery1.eof do
  Begin
    adoQuery1.Next;
  End;
  Label4.Caption := TimeToStr(time);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ADOConnection1.Connected := False;
  FDConnection1.Connected := False;
end;

end.

aunque cambiando esta parte
visto en esta pagina

http://edn.embarcadero.com/article/27790

Código Delphi [-]
ADOQuery1.First;
  Label5.Caption := TimeToStr(time);
  while Not ADOQuery1.Recordset.EOF do
  begin
    ADOQuery1.Recordset.Movenext;
  end;
  Label6.Caption := TimeToStr(time);

Con ADO demoro menos de 1 segundo, aunque el registro no se mueve..
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 04-09-2017 a las 23:27:10.
Responder Con Cita
  #2  
Antiguo 05-09-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 29.133
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero esa prueba es poco práctica, ¿alguna vez hace falta hacer eso "en el mundo real"?
Deberías hacer algunos selects aleatorios, por ejemplo, y cosas así.
Responder Con Cita
  #3  
Antiguo 05-09-2017
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 1.870
Poder: 14
oscarac Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pero esa prueba es poco práctica, ¿alguna vez hace falta hacer eso "en el mundo real"?
Deberías hacer algunos selects aleatorios, por ejemplo, y cosas así.
mmmmm quizá para algunos procesos contable podría ser, y si, también estoy haciendo pruebas con consultas
solo quería saber si alguien mas tiene conocimiento o sabe con ejemplos 100% prácticos si el tema de la velocidad es real
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo Hace 2 Semanas
juniorSoft juniorSoft is offline
Miembro
 
Registrado: abr 2005
Posts: 151
Poder: 15
juniorSoft Va por buen camino
La configuración del cursor de los componentes ADO indica que tan rapido o lento se ejecutaran las consultas, pero en mi caso le doy el voto a Firedac, son una evolución de los componentes de acceso a datos muy completo que tienen soluciones sencillas a tareas complejas. En cuanto a la rapidez también influyen muchos factores y los controladores que se estén utilizando.

Saludos,
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
Problema con FireDAC y DB2 probles2 DB2 13 21-11-2014 08:54:27
Uso de Firedac jafera Conexión con bases de datos 2 12-11-2014 12:46:25
Problema con FireDac darkamerico Conexión con bases de datos 2 04-11-2014 14:05:16
Migracion BDE a FireDac rodker Varios 3 23-07-2014 20:55:17
Firedac Aldo Conexión con bases de datos 2 16-12-2013 22:26:07


La franja horaria es GMT +2. Ahora son las 15:48:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi