DataSet と DataReader のパフォーマンスにおいては、DataReaderが速いというのは、仕組み的にも下記サイトの検証結果をみても分かる。
ADO.NETでのデータ取得を高速化するためのヒント
http://japan.internet.com/column/developer/20060307/26.html?rss
ADO.NET2.0から、DataTableのLoad メソッドが追加されたわけだが
http://www.microsoft.com/japan/msdn/net/adonet/datasetenhance.aspx
Dim dt As new DataTable
dt.Load(dataReader)
上記の結果から考えると、adapter.Fill(ds)よりは速いように思えてしまう
のだけど、下記サイトの検証結果によるとdt.Loadの方がそれなりに遅いようである。
DataSet vs DataReader 検証 .NET2.0
http://blogs.wankuma.com/ganfield/archive/2007/02/06/61084.aspx
DataGridViewなどのDataSourceにセットする場合は、素直にAdapter.Fillを使用した方がよさそうです。
また、dt.Load(dataReader) とAdapter.Fillで、挙動が違うなどもありますね。
dt.Load(dataReader)は制約(NULL)までも取り込んでしまう?
http://blogs.wankuma.com/ognac/archive/2008/06/13/143481.aspx
DataTableのLoad メソッドは、使用する場合はちと注意が必要かも。