SqlDataSource 컨트롤의 DataSourceMode 속성은 추출된 데이터가 유지되는 방식을 결정합니다.
DataSourceMode 속성의 기본값은 DataSet입니다. 이는 데이터베이스에서 추출된 결과 집합이 서버 메모리의 DataSet 개체에 저장된다는 의미입니다. SqlDataSource를 GridView와 같은 컨트롤의 데이터 소스로 사용하고 정렬하려는 경우. GridView 컨트롤에서 필터링, 페이징 등의 처리를 위해서는 SqlDataSource의 DataSourceMode 속성을 DataSet으로 설정해야 합니다.
그러나 반면에 SqlDataSource에서 추출한 데이터를 정렬, 필터링, 페이징 등을 수행하지 않고 DropDownList 및 ListBox와 같은 컨트롤의 옵션으로만 사용하는 경우 SqlDataSource의 DataSourceMode 속성을 DataReader로 설정해야 합니다. 자원 소비를 줄입니다. 결국, 이때 DataSet을 사용하는 것은 단순히 칼로 닭을 죽이는 것과 같습니다.
DataSourceMode 속성을 DataReader로 설정하면 IDataReader 개체(즉, 전달 및 읽기 전용 데이터 포인터)를 통해 데이터가 검색되고 결과 집합은 서버 메모리에 저장되지 않습니다.
데이터 세트 모델과 데이터 명령 모델의 특징과 차이점을 명확히 이해했다면, 언제 DataSet을 사용해야 하는지, 언제 DataReader를 사용해야 하는지 알 수 있을 것이라고 생각합니다.
http://www.cnblogs.com/liminzhang/archive/2006/12/18/595332.html