USEGEAR

导航

firedac的性能

应该说,目前10.3的方方面面基本正常的坑基本填好了。因此综合考虑还是用datasanp+firedac框架操练。

================================

数据量2w行,字段30个

第一次open

fd读取数据用时363毫秒,ado用时783毫秒

第二次open 
fd读取数据用时10毫秒,ado用时553毫秒

 

遍历所有记录

第一次

fd读取数据用时2438毫秒,ado用时5590毫秒
 
第二次
fd读取数据用时1988毫秒,ado用时5548毫秒

--------------------------------------------------

fd读取数据用时363毫秒,ado用时783毫秒

fd读取数据用时363毫秒,ado用时783毫秒

 

FireDac 组件说明一

 

TFDManager                              连接定义和Connect连接管理 
TFDConnection     

数据库连接组件,支持三种连接方式:1.持久定义(有一个唯一名称和一个配置文件,可以由FDManager管理)

 例:

  

uses
  FireDAC.Comp.Client, FireDAC.Stan.Intf;
var
  oDef: IFDStanConnectionDef;
begin
  oDef := FDManager.ConnectionDefs.AddConnectionDef;
  oDef.Name := 'MSSQL_Connection';
  oDef.DriverID := 'MSSQL';
  oDef.Server := '127.0.0.1';
  oDef.Database := 'Northwind';
  oDef.OSAuthent := True;
  oDef.MarkPersistent;
  oDef.Apply;
  .....................
  FDConnection1.ConnectionDefName := 'MSSQL_Connection';
  FDConnection1.Connected := True;
end;
 

2.私有定义(有一个唯一名称可以由FDManager管理,无配置文件)

例:

 

var
  oParams: TStrings;
begin
  oParams := TStringList.Create;
  oParams.Add('Server=127.0.0.1');
  oParams.Add('Database=Northwind');
  oParams.Add('OSAuthent=Yes');
  FDManager.AddConnectionDef('MSSQL_Connection', 'MSSQL', oParams);
  .....................
  FDConnection1.ConnectionDefName := 'MSSQL_Connection';
  FDConnection1.Connected := True;
end;

3.临时定义(没有名称和配置文件,不能由FDManager管理,运行时将参数写入params属性)

例:

 

uses
  FireDAC.Phys.IBDef, FireDAC.Phys.IBWrapper;
......
FDConnection1.DriverName := 'IB';
with FDConnection1.Params as TFDPhysIBConnectionDefParams do begin
  Protocol := ipTCPIP;
  Server := '127.0.0.1';
  Database := 'c:\IB\employee.gdb';
  UserName := 'sysdba';
  Password := 'masterkey';
end;
FDConnection1.Connected := True;
2. FDConnection1.ConnectionString := 'DriverID=MSSQL;Server=127.0.0.1;Database=Northwind;User_name=sa';

FDConnection1.Connected := True;)

end;

 

 TFDTransaction    数据库事务管理
 TADCommand 
 执行SQL语句。不返回结果
 TFDTableAdapter   提供应用程序与数据之间的通信
 TFDSchemaAdapter  

集中缓存更新。非常重要且实用的组件。先要将数据集,设置CachedUpdates属性为True。

 TFDMemTable FireDAC自家的内存表,三层必备的组件,也是非常重要,完全可以替代ClientDataSet
 FDQuery 类似于ADOQuery的组件,直接SQL语句并存储返回结果 
 TFDStoredProc 执行服务器存储过程
 TFDTable 类似于ADOTable,数据库表数据集 

 

posted on 2020-04-06 10:04  USEGEAR  阅读(552)  评论(0编辑  收藏  举报