应该说,目前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,数据库表数据集 

firedac的性能的更多相关文章

  1. FIREDAC FDConnection 连接池 连接串

    一.FDConnection 连接池 http://docs.embarcadero.com/products/rad_studio/firedac/frames.html?frmname=topic ...

  2. OLEVARIANT的替代——FIREDAC的TFDJSONDataSets和TFDJSONDeltas

    OLEVARIANT——这个COM的序列格式,也是DATASNAP已使用了20年的序列格式,在20年以后的今天,终于有了它的替代者:FIREDAC的TFDJSONDataSets和TFDJSONDel ...

  3. firedac odbc sql server driver连接占线导致另一个hstmt

    firedac odbc sql server driver连接占线导致另一个hstmt 原因:FDQuery.FetchOptions.Mode=fmOnDemand.好像是为了性能问题,不设置则默 ...

  4. 运行Delphi XE10的MongoDB例程,测试Delphi插入记录性能

    Delphi XE10支持MongoDB的数据库,提供了个例子restaurants可批量导入数据. 本文对比Delphi例子与MongoDB自带的mongoimport导入批量数据的性能. 步骤: ...

  5. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  6. 01.SQLServer性能优化之----强大的文件组----分盘存储

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...

  7. 03.SQLServer性能优化之---存储优化系列

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概  述:http://www.cnblogs.com/dunitian/p/60413 ...

  8. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  9. 【前端性能】高性能滚动 scroll 及页面渲染优化

    最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的 ...

  10. Web性能优化:What? Why? How?

    为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...

随机推荐

  1. 关于win1124h2不兼容HCL

    Windows 11 24H2与HCL不兼容的问题较为复杂,以下是几种常见的解决办法: 回退系统版本 如果是在更新到Windows 11 24H2的10天内发现HCL不兼容,可以使用系统自带的回退功能 ...

  2. RocketMQ的架构设计、关键特性、与应用场景详解

    内容大纲: 1.RocketMQ的简介与演进 2. RocketMQ的架构设计 3.RocketMQ的关键特性 4.RocketMQ的应用场景 RocketMQ的简介 RocketMQ一个纯java. ...

  3. 在离线环境使用nuget包

    原来程序集的引用 一个项目所有功能我们不可能都自己写对吧.这个时代 引用一大片的第三方包  项目源文件几百兆 ,有可能第三方包占了总体积99%.有可能我们自己写的代码不过几十行.想想我们原来的 老时代 ...

  4. 小程序 uni-app动态更改标题

    uni-app动态更改顶部标题 uni-app uni.setNavigationBarTitle({ title: '编辑班级荣誉' }) 小程序 wx.setNavigationBarTitle( ...

  5. Luogu P4933 大师 题解 [ 绿 ] [ 线性 dp ] [ dp 细节处理 ] [ 限制转移条件优化 ]

    依据值域的 \(O(n^2)\) 做法 这种做法只适用于这种值域小的题,下一种做法才是求等差数列的通解. 我们定义 \(f[i][j]\) 表示以 \(h_i\) 为最后一个数,公差为 \(j\) 的 ...

  6. 最长不降子序列 n log n 方案输出与 Dilworth 定理 - 动态规划模板

    朴素算法 不必多说,\(O(n^2)\) 的暴力 dp 转移. 优化算法 时间为 \(O(n \log n)\) ,本质是贪心,不是 dp . 思路是维护一个单调栈(手写版),使这个栈单调不降. 当该 ...

  7. P3306 [SDOI2013] 随机数生成器 题解

    传送门 题解 思路 由题目中可知: \[\large x_i \equiv ax_{i-1}+b\pmod{p} \] 可以得出: \[\large t=x_{n+1} \equiv a^nx_1+b ...

  8. TypeScript 中的 type 和 interface:你真的了解它们的不同吗?

    如果你有写过 Vue3 的项目,那么对 TypeScript 肯定不会陌生.不管是公司新项目技术选型还是个人学习开发新的前端项目,Vue3 + TypeScript 已经成为首选技术方案之一 在 Ty ...

  9. c++用正则表达式判断匹配字符串中的数字数值(包括负数,小数,整数)MFC编辑框判断数值

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/12097381.html 因为今天做那个MFC的编辑框有一些框就是要判断输入的是否是数值,一开始 ...

  10. Android应用借助LinearLayout实现垂直水平居中布局

    首先说的是LinearLayout布局下的居中一般是这样的: (注意:android:layout_width="fill_parent" android:layout_heigh ...