Я пытаюсь создать большое приложение .Net, которое будет обрабатывать некоторые данные из базы данных (все возможные операции над базой данных, вставки, представления, сортировка, вычисления на основе строк ...).Действительно ли DataSet медленнее по сравнению с DataReader?
Я не эксперт в области ADO, и я хотел бы убедиться, что моя архитектура оптимальна. Поэтому я пытаюсь сравнить DataSet и DataReader, чтобы узнать, когда я использую этот.
Я создал таблицу макетов в Oracle, и я заполнил 2 000 000 записей. Когда я проверяю размер таблицы с помощью запроса:
select * from dba_segments where Owner = 'TESTUSER'
Для этой таблицы я получаю что-то вроде 100 МБ.
Я прочитал в MSDN, что DataSet загружает все о таблице, в то время как DataReader - это только инструмент чтения, который быстрее.
Я пытаюсь тестирует границы каждого из них, поэтому я написал следующий код:
SQL = "Select * from HugeTable"
Command = New OracleCommand(SQL, Me.Connection)
TempDataAdapter = New OracleDataAdapter(Command)
TempDataAdapter.FillSchema(DataSet, SchemaType.Source, FullTableName)
TempDataAdapter.Fill(DataSet, FullTableName)
Если я правильно понимаю, я exepecting последнюю строку, чтобы загрузить 100 МБ из базы данных который потребует нескольких секунд, я думаю (база данных находится на том же компьютере) Однако, когда я запускаю этот код, он мгновен (он работает в несколько сотых секунд, и я не понимаю, почему это так.
Есть что-то Мне не хватает?
Почему downvoting? Что случилось с вопросом? –
Не мой нисходящий канал, но подумайте над этим: Как вы думаете, что использует DataAdapter для заполнения DataSet? – Steve
Извините. Я не понял вашего вопроса. –