代码之家  ›  专栏  ›  技术社区  ›  andrewWinn

ADO与数据集和数据表

  •  1
  • andrewWinn  · 技术社区  · 15 年前

    所以我没有看到我问题的答案:

    ADO与DataSet之间是否存在差异(性能或其他方面)?如果是,哪一种更常见?

    5 回复  |  直到 15 年前
        1
  •  10
  •   Jack Marchetti    15 年前

    ADO是实际获取数据的方式。

    我觉得你把事情搞混了。

    数据集基本上是您刚才提取的数据的内存表示,对于较小的结果集是可以的,但是对于任何较大的结果集,都应该避免使用它。

    编辑:

    还想添加,对于较大的结果集,通过DataReader填充的通用列表将在性能方面帮助您。

    例如,关于数据集,我不得不重写一个运行时间超过9小时的报告。它是一个正在生成CSV的控制台应用程序。无论如何,程序员将140万条记录加载到一个数据集中,然后对每行执行for-each循环。这不仅花费了将近10个小时,而且在运行过程中消耗了4千兆的内存。

    删除数据集后,报表现在运行不到5分钟,占用大约20兆内存。

        2
  •  5
  •   Shiraz Bhaiji    15 年前

    ADO/ADO.Net是一种从数据库中获取数据的方法。

    数据集是携带数据的一种方式。

    它们不是相互排斥的

        3
  •  3
  •   CraigTP    15 年前

    DataSet (ADO.NET中的一个类)。如果您要求比较ADO与ADO.NET或ADO的 RecordSet 数据集 对象我会像你这样回答的。

    首先,请看这里:

    Comparison of ADO and ADO.NET

    这是一篇维基百科文章,详细介绍了这两种技术之间的主要区别。

    ADO.NET最大的特点是 这可以看作是一个完整的内存数据库。诚然,它可能主要用于检索单个查询或表的数据,但是,它可以包含多个表以及这些表之间的一整套关系和约束(就像RDBMS本身中存在的一样!)。A. 数据集 也是一个 断开的 对象这意味着从RDBMS系统中检索数据 数据集 已填充,然后可以关闭数据库连接。完整的 数据集 然后可以在函数、类和组件等之间的内存中传递,甚至可以在保持“内存”的同时对其应用一个或多个更新。整个 数据集 然后,在重新建立数据库连接后,可以轻松地“一次性”将数据持久化回原始数据存储/RDBMS。这允许数据在内存中存在很长时间,而不必像数据库连接那样“保持打开”和昂贵(且稀缺)的资源。

    相比之下,ADO的 记录集 主要是单个表的表示(就像只查看数据库中的一个表,而不是整个数据库本身)。它也是一个“连接”对象,意味着当你有一个 记录集

    如果你在找 比较这两种技术(ADO与ADO.NET),您可以在此处找到这样一种比较:

    PERFORMANCE COMPARISON OF MICROSOFT'S COM ADO AND ADO.NET DATABASE CONNECTORS

        4
  •  0
  •   Carlos Muñoz Boom    15 年前

    然而,在正确的上下文中使用数据集有一些好处。

        5
  •  0
  •   Community CDub    8 年前

    ADO是从数据库检索数据的机制/代码。实际上,所有数据库发送和检索操作都使用ADO。

    数据集和数据表是在数据库之间传输数据到应用程序中使用数据点的媒介(或类)。

    除非是一次性应用程序,否则我避免使用数据集/数据表。 Explanation 为什么?

        6
  •  0
  •   Mehran Nasr    4 年前

    我想你可能想知道它们之间的区别 ADO.NET using DataSet ADO.NET using DataReader 在一般状态下!

    区别如下:

    数据阅读器 提供更快的性能,但具有只读和只读访问。

    数据集 另一方面,它消耗大量资源,但提供更多的控制和断开连接的特性。