通过 OLEDB 从 Oracle DB 检索数据的最快方法是什么?
它应该是可移植的(必须在 Postgres 和 MS SQL 上工作),只传输一列(来自某个大表的 ID)。
当前性能为 100k 行/秒。如果我想让它跑得更快,我是否期望过高?
澄清:
数据表有 23M 条记录
查询是:从对象中选择 ID
瓶颈是从oracle转移到客户端软件,即c++/OLEDB
什么鬼,我会抓住机会的。
编辑:就连接性而言,我 HEARTILTY 建议:
Oracle Objects for OLE,简称 OO4O。
它是由 Oracle 为 Oracle 而不是 MS 制造的。它使用高性能本机驱动程序,而不是 ODBC 来提高性能。我个人曾多次亲自使用过它,而且速度很快。我连接到非常大的数据库和数据仓库,其中每个表的记录从不低于 200 万条,大多数都大得多。
请注意,您无需了解 OLE 即可使用它。它包装了 OLE,因此得名。从概念上和句法上讲,它将“结果集”包装到由 SQL 命令提供的动态集中。如果您曾经使用过 DAO 或 ADO,您将在 5 分钟内提高工作效率。
这是一篇更深入的文章。
如果你不能使用OO4O,那么Oracle 做的专门的.Net Data Provider 是很好的。不是 MS 制造的。
高温高压
使用“WHERE”子句?示例:“从 id = 条件的对象中选择 id”
这仅通过网络发送感兴趣的记录。否则,所有 2300 万条记录都会通过网络发送。
或者,查看“之间”。
“从 id 介于 thisone 和 thatone 之间的对象中选择 id”
这会在您指定的范围内发送一组减少的记录。
高温高压