Я бы, вероятно, сказал вариант А из предоставленных ответов, но подкачка, безусловно, более правильный ответ. DataSets работают медленно и загружают всю таблицу, тогда как DataReader работает очень быстро, просто перебирая записи.
Использование оператора выбора в качестве источника данных - это просто плохая практика и никогда не рекомендуется.