为什么游标类型adOpenForwardOnly的性能比adOpenStatic好?

问题描述 投票:0回答:1

我试图理解

CursorTypeEnum
0 和 3 之间的区别,如here所述。两者都是静态的,除了类型 0 只支持前向迭代。

在我的例子中,

rs.Open strsql, cn, 0
在 30 秒内一致返回,而使用类型 3 游标的同一查询的性能在 3 到 8 分钟之间波动很大。

它们都需要锁定基础表才能创建静态集,那么为什么会有如此巨大的差异呢?

免责声明:我不是 VBA 或事务数据库方面的专家。我了解并发性、算法复杂性和数据结构。

sql excel vba adodb database-cursor
1个回答
0
投票

这取决于提供程序,但对于静态 SQL 提供程序,需要/复制一份到临时文件中,以看不到用户对同一数据的修改。仅转发游标而是消耗数据并在查询继续期间传输它。减少服务器工作量

© www.soinside.com 2019 - 2024. All rights reserved.