社区
Delphi
帖子详情
通过ADO的连接ORACLE速度问题!
r_james
2003-10-09 10:26:59
为什么通过ADO连接ORACLE速度很慢,但在有的机器比较快,为什么啊?
...全文
46
7
打赏
收藏
通过ADO的连接ORACLE速度问题!
为什么通过ADO连接ORACLE速度很慢,但在有的机器比较快,为什么啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xdljf
2003-10-09
打赏
举报
回复
尽量使用存储过程
r_james
2003-10-09
打赏
举报
回复
我觉得是连接的速度影响的,我做一个简单的SELECT查询要20秒,我都要疯了!
pchaos
2003-10-09
打赏
举报
回复
所以用ORACLE都用三层结构啊
mailofczg
2003-10-09
打赏
举报
回复
我也遇到了,关注
wzds2000
2003-10-09
打赏
举报
回复
我用的也是ORACLE,在比较大的库里就是选表名时比较慢。。。其它的都还正常。。。。
wzds2000
2003-10-09
打赏
举报
回复
服务器的配置是不是比较低呀?ORACLE的要求比较高。。。
r_james
2003-10-09
打赏
举报
回复
那简单查询怎么办?
ADO
与
ADO
.NET的区别与介绍
1.
ADO
与
ADO
.NET简介
ADO
与
ADO
.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高
速度
、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。但是
ADO
使用OLE DB接口并基于微软的COM技术,而
ADO
.NET拥有自己的
ADO
.NET接口并且基于微软的.NET体系架构。众所周知.NET体系不同于COM体系,
ADO
.NET接口也就完全不同于
ADO
和OLE DB接口,这也就是说
ADO
.NET和
ADO
是两种数据访问方式。2. 数据访问方式的历史下面简单的回顾一下微软的数据访问方式所走过的几个
ADO
.Net完全攻略(PDF中文版)
ADO
组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用
ADO
来访问数据库。 在新的编程框架.NET Framework中, 微软也提供了一个面向Internet的版本的
ADO
,称为
ADO
.NET。其对象模型和传统
ADO
差别很大。
ADO
是一种面向对象的编程接口,微软介绍说,与其同IBM和
Oracle
提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的
连接
。 开发人员在使用
ADO
时,其实就是在使用OLE DB,不过OLE DB更加接近底层。
ADO
的一项属性远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,
ADO
也是COM组件的一部分。
ADO
是由早期的微软数据接口??远程数据对象RDO演化而来的。RDO同微软的ODBC一同
连接
关系数据库,不过不能
连接
非关系数据库。
ADO
向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,
ADO
对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。
ADO
向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高
速度
以及较低的内存占用(已实现
ADO
2.0的Ms
ado
15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,
ADO
可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。
ADO
针对客户/服务器以及WEB应用程序作了优化。
三层
ADO
的Internet远程数据库访问开发套件
Middle
ADO
System 三层
ADO
的Internet远程数据库访问开发套件 获得最新版本: http//mid
ado
.cn 特点: 1、完全兼容Borland
ADO
Component的控件开发 从TCustom
ADO
Dataset和TCustom
ADO
Connection类继承,可快速从已完成或者开发中的程序进行升级和扩展 2、完全的三层架构 同时支持原生
ADO
访问模式和三层的扩展访问模式,开发过程同C/S模式一样,运行时设定Enabled属性,即可从C/S变成三层,随时切换模式。 3、后台自动连线机制 客户端在长时间使用过程中,如果网络异常断线,恢复后可继续使用业务功能,不用重新启动应用程序,更加适合在不稳定的网络环境中使用。 4、自动断线功能 客户端长时间不进行操作,服务端可暂时断开客户端连线,当用户需要继续操作时,通过后台自动连线功能,重新
连接
网络继续操作,对用户的操作没有任何影响。自动断线功能可充分利用系统资源,减少同时在线用户,同时保障每个用户的
连接
质量。 5、数据库共享
连接
池 多个客户端共享同一个数据库
连接
对象,可设定每个客户端独占数据库
连接
对象时间和自动回收时间。 大量减少数据
连接
数量,减少数据库的负载,极大提高数据库访问
速度
。根据设定的缓冲时间,可节约80%~95%
连接
对象资源 6、多数据库目录支持 一个中间层服务程序可同时提供多个数据库目录的服务,提供多个应用系统的多套数据
连接
并发服务 7、安全的Internet网应用 通过TCP/IP服务程序,提供Internet的外部数据访问功能,通过服务程序,隔离数据库的直接
连接
,有效保护数据库安全, 高效的数据压缩和加密传输,提高远程的数据访问
速度
和安全性。 8、服务端状态监控功能 对服务器的连线和负载状态进行实时监控,可查看每个客户端
连接
的来源和请求情况,包括数据的收发字节数 9、便于安装和维护 客户端不用装任何客户端数据库驱动和设置数据库
连接
对象,大量不同的客户端环境中进行客户端数据库
连接
设定,是需要花费不少人力。(例如
Oracle
) 使用场合: 1、需要安全的通过Internet远程数据库访问应用程序,如连锁加盟、各地办事处、等分布式应用 2、需要隔离数据库访问的高安全应用程序,例如在线实时交易软件、如股票证券、期货、外汇等交易等 3、大量客户端同时访问的应用程序,例如几千个用户同时连线对数据库造成重大负载的应用。 4、受到正版数据库软件用户
连接
数的限制,需要用少量许可提供更多客户端服务的应用。例如,10个许可提供给50个用户同时使用。
DevArt UniDAC v.3.70.0.19 [D7-XE]
[转]为什么要选择UniDAC? 说到数据集组件,大家也许会首选
ADO
,然后说BDE太老了,DBX不敢用。其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论UniDAC和
ADO
的一些比较。 Delphi能发展到现在,和一些著名的第三方控件厂商大力支持分不开,这其中包括Devart公司(Corelab)公司。Corelab公司做数据集驱动非常出名,就拿ODAC、SDAC和DBX驱动来说,已经远胜其他同行的第三方控件公司。UniDAC是Devart公司最近的力作,将ODAC、SDAC、IBDAC等驱动综合集成在一块。UniDAC无论是做三层还是两层,都远胜于
ADO
。下面说一些UniDAC的优点: 1、非常完美的支持多数据库的数据集套件。这一点,
ADO
也支持多数据库,但
ADO
除了MSSQL驱动之外,其他驱动支持的非常差。就拿
Oracle
驱动来说,在调用
oracle
复杂的存储过程参数,总是或多或少有些
问题
;MSSQL企业管理器如果用了第三方驱动(比如是
oracle
),在导入导出数据也尚存在
问题
!更别提不是主流的IB数据库驱动。UniDAC支持
Oracle
、MSSQL、MYSQL、IB/FB、PostgreSQL。 2、对三层特性支持非常好!也许你也会问,三层也是访问DB,
ADO
也支持啊?!但三层最好方式是无状态方式,在高并发的处理中,一般不允许本地有数据集缓存。
ADO
没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个UniDirectional属性,支持单向
速度
,这点和DBX的想法不谋而合。况且,单向数据集特性
速度
非常快,在三层中,配合TDataSetProvider,中间件将其Data包发送到客户端,
速度
无可比拟。
ADO
也有流或XML格式包,但无论是XML或流格式,数据包远比CDS的包大几倍。CDS封包技术很好! 3、一些非常有用的属性或方法。常言道,细微之处见体贴。UniDAC有一些过人的方法或属性。比如,刷新单条记录(RefreshRecord)、多表更新的属性(UpdatingTable)、宏替换参数(Macros)、集成删除/新增/修改/刷新/锁定SQL语句、FetchRows,更让人称道的是引入了UpdateSQL组件。 在处理MSSQL新增后的自增字段,和
ADO
一样可以直接自动返回自增字段值,这一点,BDE不能做到、DBX不能做到、ZEOSDB不能做到。更令人称奇是,配合TUniUpdateSQL,还能自动返回自增字段值。 TUniUpdateSQL是一个好东西,
ADO
缺少TUdateSQL运作模式,默认的更新机制是主键字段+已变化的字段做where条件。在一般情况下是没
问题
,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对
oracle
支持非常好。别的不说,光是一个
oracle
连接
的Direct Mode,不用安装
oracle
官方肥硕客户端(网上也有精10M左右简版的客户端),只要客户机支持TCP/IP协议即可。如果用
ADO
连接
Oracle
,必须保证先安装
oracle
客户端,还要配置
连接
文件,一堆繁琐事情。UniDAC对
oracle
支持的非常完美,和专业化的DOA差不多! 当然,最大的缺点是,非常贵,最贵的档次,差不多可以买半套的D2009!
unidac350d14pro
其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论UniDAC和
ADO
的一些比较。 Delphi能发展到现在,和一些著名的第三方控件厂商大力支持分不开,这其中包括Devart公司(Corelab)公司。Corelab公司做数据集驱动非常出名,就拿ODAC、SDAC和DBX驱动来说,已经远胜其他同行的第三方控件公司。UniDAC是Devart公司最近的力作,将ODAC、 SDAC、IBDAC等驱动综合集成在一块。UniDAC无论是做三层还是两层,都远胜于
ADO
。下面说一些UniDAC的优点: 1、非常完美的支持多数据库的数据集套件。这一点,
ADO
也支持多数据库,但
ADO
除了MSSQL驱动之外,其他驱动支持的非常差。就拿
Oracle
驱动来说,在调用
oracle
复杂的存储过程参数,总是或多或少有些
问题
;MSSQL企业管理器如果用了第三方驱动(比如是
oracle
),在导入导出数据也尚存在
问题
!更别提不是主流的IB数据库驱动。UniDAC支持
Oracle
、MSSQL、MYSQL、IB/FB、 PostgreSQL。 2、对三层特性支持非常好!也许你也会问,三层也是访问DB,
ADO
也支持啊?!但三层最好方式是无状态方式,在高并发的处理中,一般不允许本地有数据集缓存。
ADO
没有单向数据集特性,所有的数据下载到本地,不停的开辟内存或释放大内存,对三层的内存是一个极大考验。TUniQuery有一个 UniDirectional属性,支持单向
速度
,这点和DBX的想法不谋而合。况且,单向数据集特性
速度
非常快,在三层中,配合 TDataSetProvider,中间件将其Data包发送到客户端,
速度
无可比拟。
ADO
也有流或XML格式包,但无论是XML或流格式,数据包远比 CDS的包大几倍。CDS封包技术很好! 3、一些非常有用的属性或方法。常言道,细微之处见体贴。UniDAC有一些过人的方法或属性。比如,刷新单条记录(RefreshRecord)、多表更新的属性(UpdatingTable)、宏替换参数(Macros)、集成删除/新增/修改/刷新/锁定SQL 语句、FetchRows,更让人称道的是引入了UpdateSQL组件。 在处理MSSQL新增后的自增字段,和
ADO
一样可以直接自动返回自增字段值,这一点,BDE不能做到、DBX不能做到、ZEOSDB不能做到。更令人称奇是,配合TUniUpdateSQL,还能自动返回自增字段值。 TUniUpdateSQL是一个好东西,
ADO
缺少TUdateSQL运作模式,默认的更新机制是主键字段+已变化的字段做where条件。在一般情况下是没
问题
,但如果这个表没有主键或where条件中的字段小数位很长导致误餐,就会产生更新找不到记录。TUdateSQL可以保证这点,运作灵活又透明。 4、对
oracle
支持非常好。别的不说,光是一个
oracle
连接
的Direct Mode,不用安装
oracle
官方肥硕客户端(网上也有精10M左右简版的客户端),只要客户机支持TCP/IP协议即可。如果用
ADO
连接
Oracle
,必须保证先安装
oracle
客户端,还要配置
连接
文件,一堆繁琐事情。UniDAC对
oracle
支持的非常完美,和专业化的DOA差不多! 当然,最大的缺点是,非常贵,最贵的档次,差不多可以买半套的D2009!
Delphi
5,392
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章