Performance Delphi,PGDac vs Zeos,获取,查找?

Performance Delphi,PGDac vs Zeos,获取,查找?,performance,delphi,postgresql,lookup,fetch,Performance,Delphi,Postgresql,Lookup,Fetch,我使用Zeos测试了解:ZTable是否使用获取技术 将来我们可能会将我们的小系统迁移到PGSQL,这使用了现在的“表”组件(作为BDE,但它有一个类似SQL的服务器) 这些表使用真正的游标,一个包含N条记录的“窗口”,因此查找速度非常快,因为定位/查找是在服务器上启动的,并且无论查找表中有多少条记录,都只刷新这N条记录 据我所知,PGSQL使用fetch技术,我用一个表(id int,name varchar(100))和一百万条记录对其进行了测试。(我也尝试使用mysql)。适配器是Zeos

我使用Zeos测试了解:ZTable是否使用获取技术

将来我们可能会将我们的小系统迁移到PGSQL,这使用了现在的“表”组件(作为BDE,但它有一个类似SQL的服务器)

这些表使用真正的游标,一个包含N条记录的“窗口”,因此查找速度非常快,因为定位/查找是在服务器上启动的,并且无论查找表中有多少条记录,都只刷新这N条记录

据我所知,PGSQL使用fetch技术,我用一个表(id int,name varchar(100))和一百万条记录对其进行了测试。(我也尝试使用mysql)。适配器是Zeos

ID,要查找的秒数,客户端上已分配的内存(字节)

MySQL
500000  2,761   113 196 344
1000000 3,214   225 471 232
313800  0,437   225 471 232
328066  0,468   225 471 232
276374  0,390   225 471 232
905984  1,264   225 471 232
260253  0,359   225 471 232

PGSQL
500000  3,042   113 188 184
1000000 3,744   225 463 064
313800  0,436   225 463 064
328066  0,452   225 463 064
276374  0,375   225 463 064
905984  1,295   225 463 064
260253  0,359   225 463 064
142023  0,203   225 463 064
正如您所看到的,记录是在本地获取的,这导致了225 MB的使用量,并且根据我们必须找到的记录的位置,搜索速度有点慢

我想问更多的问题:

a、 ) PGDAC是否有一些技术,我们可以使用查找而不必支付内存和秒数的获取

b、 ) 还是PG ODBC驱动程序可以帮助解决ADO的这个问题?(据我所知,ADO可以使用服务器端游标)

c、 ) 有没有人对查找表和性能有一些经验?这是否是一个关键问题? (也包括客户端内存使用情况)

d、 ) 如果没有机会避免找麻烦,我们能做什么? 服务器端连接,以及在没有真正查找的情况下更改查找字段的唯一代码

感谢您的帮助:
开发商回答我:

你好,

现在PgDAC不能使用服务器端游标 随你的便。我们将调查此事 在中添加此功能的可能性 的下一个生成/版本之一 PgDAC

向Alex Devart团队致意 www.devart.com

所以现在没有SS游标

谢谢:
dd

我所有的项目都使用postgres,除了一个项目(我使用Nexus…),我大约一年前使用过PgDac,我对它的性能不满意,我使用UniDac(它不是免费的,但值得每一分钱),我对它们非常满意,快速、可靠。我无法告诉你PgDac和UniDac在速度上的差异,因为我已经切换了PC(计算能力超过两倍),我总是尽可能地优化我的查询,但是当PgDac更改为UniDac时,我没有任何关于速度的抱怨,相反,我也做了很多改进…UniDac不需要额外的库(*.dll)来访问postgre数据库(这非常重要)UniDac不能比PgDAC快,因为两者共享相同的技术,唯一的例外是UniDAC版本不同于PgDAC:),但问题是:是否存在任何服务器类型游标?