Скорость работы БД в приложении |
Здравствуйте, гость ( Вход | Регистрация )
Скорость работы БД в приложении |
AD |
18.3.2011, 10:38
Сообщение
#1
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Для более быстрого создания файла топографической библиотеки (бинарный файл, в котором хранится содержимое нескольких (многих) карт) определенного формата решено было использовать в качестве промежуточного варианта хранения данных БД. Проблема состоит в том, что после реализации этого подхода выяснилось, что вставка, изменение и выборка из таблиц СУЩЕСТВЕННО замедляет задачу, а не ускоряет ее. Как можно решить данную проблему? Заранее спасибо за подсказку! Как только я комментирую строчки, делающие выборку и внесение данных в таблицы - тут же скорость работы возрастает в разы.
Сообщение отредактировал AD - 18.3.2011, 10:39 |
|
|
abc |
18.3.2011, 11:06
Сообщение
#2
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
субды быстро работают, сами запросы должны быть, в общем, мгновенны.
или я не сталкивался с гигантским количеством данных.. у тебя гигантское?) |
|
|
AD |
18.3.2011, 11:12
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
субды быстро работают, сами запросы должны быть, в общем, мгновенны. или я не сталкивался с гигантским количеством данных.. у тебя гигантское?) Десятки тысяч, возможно и сотни. Может быть из-за того, что использую Paradox? Если перейти на QSQL-Lite будет лучше? Сообщение отредактировал AD - 18.3.2011, 11:12 |
|
|
abc |
18.3.2011, 13:17
Сообщение
#4
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
не знаю, я работаю с PostgreSql
я не работал с таким количеством строк но, скажем, выборку из таблицы ты можешь задать сложную, где надо будет просмотреть все строки, сравнить тексты.. что-нибудь в этому духе. но вставка и изменение (поиск по уникальному ключу?) медленной быть не должна. кстати, медленно это сколько? |
|
|
AD |
18.3.2011, 14:03
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
не знаю, я работаю с PostgreSql я не работал с таким количеством строк В другом приложении я работал с Microsoft Sql Server. Никаких проблем не было. Тоже было немало строчек. медленной быть не должна. кстати, медленно это сколько? Да блин, у меня уже вставка в таблицы идет 2.5 часа. Это ненормально. Запросы выборки не очень-то и сложные. Выбираем id из одной таблицы, по этим id выбираем что-то из другой таблицы и тому подобные. |
|
|
abc |
18.3.2011, 14:28
Сообщение
#6
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
это стопудовый нонсенс. а почему взялся за Paradox? вроде бы не очень популярная штука
|
|
|
AD |
18.3.2011, 14:42
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
|
|
|
Kagami |
18.3.2011, 17:45
Сообщение
#8
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Иногда работу СУБД сильно заменяют транзакции - с тем же SQLite они выполняются для каждой операции автоматически. Часто можно сильно ускорить работу если начинать транзакции вручную и завершать после выполнения всех (ну или части, если их можно сгруппировать логически) операций.
|
|
|
AD |
18.3.2011, 17:54
Сообщение
#9
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Иногда работу СУБД сильно заменяют транзакции - с тем же SQLite они выполняются для каждой операции автоматически. Часто можно сильно ускорить работу если начинать транзакции вручную и завершать после выполнения всех (ну или части, если их можно сгруппировать логически) операций. Замедляют в смысле? А как к примеру это сделать, т.е. запускать и завершать транзакции вручную? Да читаю ассистент. Возник такой вопрос - могу использовать QSqlTableModel при работе с QSQLite? |
|
|
abc |
18.3.2011, 20:51
Сообщение
#10
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
можешь, почему нет
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 16:19 |