awaisshabir Ответов: 1

У меня есть 2 миллиона записей в моей базе данных?


у меня есть 2 миллиона записей в моей базе данных, которая является лучшим методом для извлечения данных из базы данных?

SQLReader или SQlDataAdapter

Что я уже пробовал:

у меня есть 2 миллиона записей в моей базе данных, которая является лучшим методом для извлечения данных из базы данных?

SQLReader или SQlDataAdapter

Richard Deeming

Ответ таков, - это зависит от обстоятельств".

Планируете ли вы загрузить все 2 миллиона записей в память одновременно? (Плохая идея...)

Что вы собираетесь делать с данными после их загрузки?

Dave Kreskowiak

Не существует "лучшей техники" для всех запросов. Вы используете то, что соответствует бизнес-правилам, с которыми вы имеете дело в данный момент.

1 Ответов

Рейтинг:
1

OriginalGriff

В сущности говоря, ни один из них.
Если вы извлекаете 2 000 000 строк одновременно, это займет некоторое время. Даже если каждая строка представляет собой один столбец шириной 10 символов, вы будете передавать 20 000 000 байт (без всей необходимой упаковки) только для того, чтобы получить данные.
На самом деле все будет зависеть от того, что вы хотите с ним сделать: DataAdapter извлекает все строки и не возвращается до тех пор, пока они все не будут извлечены, DataReader возвращается немедленно, но делает круговую поездку на сервер каждый раз, когда вы запрашиваете новую строку (на самом деле это не так, потому что существует определенная степень буферизации, но для такого количества строк это может быть и так). Это "растягивает" время поиска и может заставить пользователя думать, что оно быстрее, потому что задержка амортизируется по каждой строке, а не является большой долей времени в начале.
Но ... если вы представляете эти данные пользователю, то вы вообще не хотите этого делать! В мире нет ни одного элемента управления, который бы хорошо справлялся с таким количеством данных, и нет ни одного пользователя в мире, который хотел бы смотреть на такое количество данных в одном куске!


phil.o

"нет ни одного пользователя в мире, который хотел бы посмотреть на такое количество данных в одном куске"
Чак Норрис знает :)

OriginalGriff

Чак Норрис уже прочел его.
Дважды.