Это действительно зависит от вида данных, которые Вы возвращаете. Так как DataSet является (в действительности) просто набором Объектов dataTable, можно возвратить несколько отличных наборов данных в сингл, и поэтому более управляемый, объектный.
мудрый Производительностью, Вы, более вероятно, получите неэффективность от неоптимизированных запросов, чем от "неправильного" выбора конструкции.NET. По крайней мере, это было моим опытом.
Одно существенное различие - то, что DataSets может содержать несколько таблиц, и можно определить отношения между теми таблицами.
, Если бы Вы только возвращаете единственный набор результатов, хотя я думал бы, DataTable будет более оптимизирован. Я думал бы, что должны быть немного служебные (предоставил маленький) предложить функциональность, которую DataSet делает и отслеживает несколько DataTables.
в 1.x раньше были вещи, которые не мог сделать DataTables, который DataSets мог (не помнить точно что). Все, что было изменено в 2.x. Мое предположение является вот почему большим количеством примеров, все еще используют DataSets. DataTables должен быть более быстрым, поскольку они более легки. Если Вы только вытягиваете единственный набор результатов, его Ваш лучший выбор между двумя.
Одна функция DataSet - то, что, если можно назвать несколько избранных операторов в хранимых процедурах, DataSet будет иметь один DataTable для каждого.
Существует некоторая оптимизация, которую можно использовать при заполнении DataTable, такого как вызов BeginLoadData (), вставляя данные, затем называя EndLoadData (). Это выключает некоторое внутреннее поведение в DataTable, таком как ведение индексов, и т.д. См. эта статья для получения дальнейшей информации.