代码之家  ›  专栏  ›  技术社区  ›  Daniel MoÅ¡mondor

从Oracle读取最快的OLEDB

  •  1
  • Daniel MoÅ¡mondor  · 技术社区  · 16 年前

    通过OLEDB从Oracle数据库中检索数据的最快方法是什么?

    它应该是可移植的(必须在Postgres和MS SQL上工作),只传输一列(ID来自一些大表)。

    当前性能为10万行/秒。如果我想快点的话,我是不是期待太多了?

    澄清:

    数据表有23M条记录

    查询是:从对象中选择ID

    瓶颈是从Oracle转移到客户端软件,即C++/OLDB

    1 回复  |  直到 16 年前
        1
  •  1
  •   JustBoo    16 年前

    见鬼,我会冒险的。

    编辑: 就连接性而言,我衷心建议:

    Oracle Objects for OLE ,简称oo4o。

    它是由Oracle为Oracle而不是MS制造的。它使用高性能的本机驱动程序,而不是使用ODBC来提高性能。我曾多次亲自使用过这个,而且速度很快。我连接到非常大的数据库和数据仓库,每个表都不少于200万条记录,大多数都要大得多。

    注意,您不需要知道OLE就可以使用它。它包装了ole,因此得名。在概念和语法上,它将“结果集”包装成由SQL命令提供的动态集。如果您曾经使用过DAO或ADO,那么您将在5分钟内达到高效。

    这里有一个更深入的 article.

    如果您不能使用oo4o,那么Oracle制造的专门的.NET数据提供程序是非常好的。不是女士做的。

    高温高压


    使用“Where”子句?示例:“从id=criteria的对象中选择id”

    WHERE

    这只在整个网络中发送感兴趣的记录。否则,所有2300万条记录都会通过网络发送。

    或者,看看“中间”。

    “从对象中选择ID,其中ID介于该对象和该对象之间”

    BETWEEN

    它在您指定的范围内发送一组缩减的记录。

    高温高压