Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
SQLite

В базе много записей. Приложение жестко тормозит

15.02.2018, 11:07. Показов 2623. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, делал приложение на C# и БД SQLite, все было нормально, пока туда не занесли записи больше 2500 тыс. теперь программа долго запускается, мин 3, при этом окно такое осущение что зависает, был поиск реализовам который работает через фильтр DataGridView, поиск тоже долго работает, вчем может быть проблема и как можно оптимизировать приложение ?
Просто только февраль они уже внесли 2500 тыс. а еще впереди 10 месяцов, что тогда будет
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2018, 11:07
Ответы с готовыми решениями:

Жестко тормозит пк
Здравствуйте, помогите решить проблему, может кто сталкивался с подобным. На стационарном ПК пару месяцев назад стали проявляться...

Система жестко тормозит
Железка неплохая Samsung R719. Недавно поставил убунту, работает гораздо медленнее чем на той же винде. Даже прокрутка и та небольшими...

Жестко тормозит ноутбук
Здравствуйте , купили новый ноутбук HP, чистый без винды. Скачал виндовс с офф сайта, установил все драйвера. По началу все работало...

25
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 11:45
Matroskin_Kot, и что вам можно тут посоветовать? Много чего

2500тыс - 2.5 миллиона?

Если приложение тормозит в начале, то приложение или выгребает кучу данных или какие-то тяжёлые вещи делает. Так не должно быть, вестимо.

А так, основной совет - ищите узкое место. Возможно нужно накидать индексов, оптимизировать запросы и, конечно же, не делать того, что очень сильно любят начинающие - выгребать всё, даже когда не нужно.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 11:53  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Если приложение тормозит в начале, то приложение или выгребает кучу данных или какие-то тяжёлые вещи делает. Так не должно быть, вестимо.
А так, основной совет - ищите узкое место. Возможно нужно накидать индексов, оптимизировать запросы и, конечно же, не делать того, что очень сильно любят начинающие - выгребать всё, даже когда не нужно.
При включение программы сразу идет подключение к БД и выбираеться в DataGridView, как можно упрасить что ли
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 11:54
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
При включение программы сразу идет подключение к БД и выбираеться в DataGridView
Дайте угадаю: выбирается ВСЁ? И по-другому никак, да?
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 12:03  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Дайте угадаю: выбирается ВСЁ? И по-другому никак, да?
да все поля,
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 12:03
Matroskin_Kot, и чему вы тогда удивляетесь?
1
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 12:38  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Matroskin_Kot, и чему вы тогда удивляетесь?
Подскажите а как можно исправить это
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 12:41
Matroskin_Kot, не выгребайте все данные за раз. Это нафиг не нужно пользователям и превращает ваше приложение в тыкву.

Используйте постраничную навигацию, поиск.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 12:43  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
не выгребайте все данные за раз. Это нафиг не нужно пользователям и превращает ваше приложение в тыкву.
Используйте постраничную навигацию, поиск.
то есть делать разрывы, и делать пагинацию ? а можете ссылку дать как ее сделать с DataGridView, и как я понял фильтры с DataGridView надо убрать и делать выборку через SELECT
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 12:48
Matroskin_Kot, да, "пагинация". Вам не нужны ссылки. Вам нужно пару кнопок "Вперёд""Назад", номер текущей страницы (количество всех записей \ записей на странице) и фильтр.

Как в SQLite выгребать данные страницами нужно гуглить отдельно, ибо в каждой СУБД это делается по своему.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 12:57  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Matroskin_Kot, да, "пагинация". Вам не нужны ссылки. Вам нужно пару кнопок "Вперёд""Назад", номер текущей страницы (количество всех записей \ записей на странице) и фильтр.
Как в SQLite выгребать данные страницами нужно гуглить отдельно, ибо в каждой СУБД это делается по своему.
Можно вопрос, а как вообще такие программы делаються ? я просто думал не селен в этом по этому я на главное окно выбрал все может как то по другому надо
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 13:01
Matroskin_Kot, третий раз повторяю: постраничный вывод. Могу ещё повторить, если надо.

Далеко за примером ходить не надо:
Миниатюры
В базе много записей. Приложение жестко тормозит  
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 13:05
Просто нужно определиться, сколько записей вы хотите показывать на странице (больше сотни - смысла не имеет) и выгребать данные порциями, по мере необходимости.

Примеров найти в сети можно море. Самое сложное - реализовать правильно SQL-запрос.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
15.02.2018, 13:37
Цитата Сообщение от Matroskin_Kot
как вообще такие программы делаються
Если данных много и при входе в программу они долго читаются, то можно первоначальный вход делать вообще без чтения данных. Потом пользователь вводит некоторые условия (фильтры) и уже по ним идет выборка данных.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 13:55  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Просто нужно определиться, сколько записей вы хотите показывать на странице (больше сотни - смысла не имеет) и выгребать данные порциями, по мере необходимости.
Примеров найти в сети можно море. Самое сложное - реализовать правильно SQL-запрос
А если сделать пагинацию в таком формате А Б В Г и т.д.
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
15.02.2018, 14:26
Matroskin_Kot, да как вам угодно, лишь бы записей не было слишком много. Если у вас в категории "В" будут все те же 2500 записей, то вы к тому же и придёте.
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
15.02.2018, 14:37
Matroskin_Kot, А, Б, В.... - это фильтры.
Вам же нужно сделать подсчет общего количества, разделить на количество записей на страницу - и выгребать именно последнее количество из таблицы.
Всё зависеть будет от UI, и Ваших знаний сиквела.
П.С. - поиск через DataGridView - это наихудшее, что можно было сделать.
0
4 / 4 / 3
Регистрация: 10.05.2016
Сообщений: 1,117
15.02.2018, 22:32  [ТС]
А многопоточность не решит проблему ?
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
16.02.2018, 00:00
Matroskin_Kot, нет, не решит. Никакулечки. Перестаньте отбирать 100500 лишних записей. Стройте фильтрацию.
0
Эксперт .NET
 Аватар для Usaga
14305 / 9389 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
16.02.2018, 06:44
Цитата Сообщение от Matroskin_Kot Посмотреть сообщение
А многопоточность не решит проблему ?
Ну да, можно ещё рассмотреть вариант смены СУБД, переписи приложения на С++ (или вообще ассемблере), замены оборудования. Но вот сделать нормально видимо вообще не вариант, правда?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.02.2018, 06:44
Помогаю со студенческими работами здесь

Чистый Windows XP жестко тормозит
ситуация такая: недавно купил ноутбук поставил Windows XP SP3, на компе не было ничего, и он еще тогда очень сильно тормозил. тормозит при...

Вирус жестко тормозит компьютер
Вообщем начались жестокие лаги, плюс в диспетчере задач появились файлы типа jf84t745hgh.exe их несколько , они не завершаются и то...

Тормозит система из-за жестко диска?
Вчера купил компьютер, AMD fx 8300, 8gb RAM, RADEON R9 tri x, а жесткие остались прежними. Одному около 3 лет, если не больше. Установил...

WD Green жестко тормозит. Это смерть?
Короче говоря, исходные посылки следующие. Имеется обычный, 3'5 винчестер WD10EADS-00M2B0. Носитель использовался в качестве статичной...

Жестко тормозит винда при загрузке...
жестко тормозит винда при загрузке, загрузка происходит примерно за 8-10 мин...на вирусы проверял...нет ничо...температура...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru