通过 OLEDB 从 Oracle DB 检索数据的最快方法是什么?
它应该是可移植的(必须在 Postgres 和 MS SQL 上工作),只传输一列(来自某个大表的 ID)。
当前性能为 10 万行/秒。如果我想让它运行得更快,我是否期望过高?
澄清:
数据表有2300万条记录
查询是:SELECT ID FROM OBJECTS
瓶颈是从oracle传输到c++/OLEDB的客户端软件
最佳答案
算了,我来试试。
编辑:就连接性而言,我衷心推荐:
Oracle Objects for OLE , 简称OO4O。
它是由 Oracle 为 Oracle 而不是 MS 制作的。它使用高性能 native 驱动程序,而不是 ODBC 来提高性能。我自己曾多次亲自使用过它,而且速度很快。我正在连接到非常大的数据库和数据仓库,其中每个表都不会少于 200 万条记录,而且大多数都大得多。
请注意,您无需了解 OLE 即可使用它。它包装 OLE,因此得名。从概念上和句法上讲,它将“结果集”包装到一个由 SQL 命令提供的动态集中。如果您曾经使用过 DAO 或 ADO,您将在 5 分钟内变得高效。
这是更深入的 article.
如果你不会OO4O,那么Oracle专门做的.Net Data Provider就很好了。不是 MS 制作的。
HTH
使用“WHERE”子句?示例:“从 id = criteria 的对象中选择 id”
这仅通过网络发送感兴趣的记录。否则所有 2300 万条记录都会通过网络发送。
或者,查看“之间”。
“从id介于thisone和thatone之间的对象中选择id”
这会在您指定的范围内发送一组减少的记录。
HTH
关于c++ - 从 ORACLE 读取最快的 OLEDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3501195/