Venkat Konda Ответов: 1

Как загрузить большой объем данных из базы данных sqlite в C#


Я использую SQLite в качестве базы данных для моего приложения WPF, нужно загрузить большой объем данных из базы данных, когда я использую select * from tablename для загрузки данных, это занимает много времени. Может ли кто-нибудь помочь мне получить данные так же быстро, как?

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

Я использовал обычный запрос Select для извлечения данных из базы данных SQLite

Richard MacCutchan

Не извлекайте все данные одновременно, это просто пустая трата ресурсов.

1 Ответов

Рейтинг:
1

OriginalGriff

Это будет зависеть от того, как вы его загружаете и что вы делаете с ним после загрузки.
Если вы используете DataAdapter, то выполнение команды не возвращается до тех пор, пока DataTable или DataSet не будут полностью загружены - при больших объемах данных это может занять довольно много времени.
Если вы используете DataReader, выполнение команды возвращается почти сразу, но каждая строка должна быть доступна последовательно, и каждый доступ занимает немного больше времени, чем доступ к тем же данным из DataTable.

Если вы обрабатываете строки одну за другой, то DataReader может быть лучшим выбором, так как управление возвращается немедленно. Если вы загружаете DataTable, чтобы сбросить огромное количество данных в элемент управления пользовательского интерфейса, то вы создаете свою собственную проблему и создаете приложение, которое всегда будет медленным и ненавидимым вашими пользователями.
Мы не можем сказать.

Также возможно, что ваши данные включают в себя большие объекты, которые вы не используете: SELECT * возвращает все, поэтому, если столбец содержит изображения, которые вам не нужны, вы, вероятно, можете ускорить процесс, указав только те столбцы, которые вам нужны - это считается хорошей практикой в любом случае.

Но в основном это зависит от вас: мы понятия не имеем, как вы извлекаете свои данные, сколько их там или что вы делаете с ними, когда вы их извлекли, - и мы не можем посмотреть на ваше приложение или данные, чтобы узнать это!