数据表与数据集

时间:2020-03-05 18:37:43  来源:igfitidea点击:

我目前使用DataTable从数据库中获取结果,可以在我的代码中使用该结果。

但是,网络上的许多示例都显示使用DataSet代替,并通过collections方法访问表。

使用性能数据集或者数据表作为SQL结果的存储方法是否有任何优势(无论是性能还是其他方面)?

解决方案

回答

在1.x中,DataTables曾经做不到DataSets可以做的事情(不记得确切是什么)。在2.x中所做的所有更改。我的猜测是这就是为什么许多示例仍使用数据集的原因。 DataTables应该更快,因为它们更轻巧。如果仅提取单个结果集,则这是我们在这两者之间的最佳选择。

回答

这实际上取决于我们要带回的数据类型。由于一个DataSet(实际上)只是一个DataTable对象的集合,因此我们可以将多个不同的数据集返回到一个单一的,因此更易于管理的对象中。

在性能方面,未优化的查询比.NET构造的"错误"选择更有可能导致效率低下。至少,这是我的经验。

回答

DataSet的一项功能是,如果我们可以在存储过程中调用多个select语句,则该DataSet将为每个存储一个DataTable。

回答

填充DataTable时,可以使用一些优化方法,例如调用BeginLoadData(),插入数据,然后调用EndLoadData()。这将关闭DataTable中的某些内部行为,例如索引维护等。有关更多详细信息,请参见本文。

回答

一个主要区别是数据集可以容纳多个表,并且我们可以定义这些表之间的关系。

如果我们只返回一个结果集,尽管我认为DataTable会更优化。我认为要提供DataSet的功能并跟踪多个DataTable,必须有一些开销(小额)。