DataAdapter transfers data from the database to the in-memory database and back again.
DataTable represents an in-memory database table.
DataView represents an in-memory database view.
DataSet represents an in-memory database.
They are slower and use more resource intensive.
Retrieving 500 records with a DataReader is much faster than retrieving 500 records with a DataAdapter.