Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
kibsoft |
17.2.2010, 16:53
Сообщение
#1
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2
|
Есть ли способы считать все данные результата запроса без цикла while(query.next()) ? Мне надо считать все данные в QHash. В таблице 52000 записей и все это считывание занимает 6 секунд..
|
|
|
|
|
Litkevich Yuriy |
17.2.2010, 19:14
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
kibsoft, от того, что ты воспользуешься другим способом скорость не изменится. В качестве объяснения:
Попробуй представить себе, что будет делать процессор в самом компактном случае. Цитата(kibsoft @ 17.2.2010, 19:53) Link В таблице 52000 записей и все это считывание занимает 6 секунд.. считывание или перебор результатов с помощью while(query.next()) ?
|
|
|
|
|
Elfinit |
17.2.2010, 20:12
Сообщение
#3
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 127 Регистрация: 17.3.2009 Из: Казань Пользователь №: 619 Спасибо сказали: 7 раз(а) Репутация: 1
|
Цитата(Litkevich Yuriy @ 17.2.2010, 19:14) Link считывание или перебор результатов Я думаю, имелся ввиду именно перебор..Так существует способ без цикла поместить данные в контейнер? Через модели? |
|
|
|
|
Litkevich Yuriy |
17.2.2010, 20:25
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(Elfinit @ 17.2.2010, 23:12) Link Через модели? а что, это упростит работу? По моему ни сколько.
|
|
|
|
|
MoPDoBoPoT |
17.2.2010, 21:15
Сообщение
#5
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9
|
Цитата(Elfinit @ 17.2.2010, 20:12) Link Через модели? Так это скорости не прибавит, если только наоборот, потому как SQL-модели являются обертками над QSqlQuery. |
|
|
|
|
kibsoft |
17.2.2010, 23:01
Сообщение
#6
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 17.2.2010, 20:14) Link kibsoft, от того, что ты воспользуешься другим способом скорость не изменится. В качестве объяснения: Попробуй представить себе, что будет делать процессор в самом компактном случае. Цитата(kibsoft @ 17.2.2010, 19:53) Link В таблице 52000 записей и все это считывание занимает 6 секунд.. считывание или перебор результатов с помощью while(query.next()) ?Ну вроде ка перебор..Я заношу каждую запись в QHash. |
|
|
|
|
Litkevich Yuriy |
17.2.2010, 23:22
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(kibsoft @ 18.2.2010, 2:01) Link Ну вроде ка перебор. дак ты вокруг цикла сделай так:и узнаешь точно
|
|
|
|
|
kibsoft |
18.2.2010, 0:01
Сообщение
#8
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 18.2.2010, 0:22) Link Цитата(kibsoft @ 18.2.2010, 2:01) Link Ну вроде ка перебор. дак ты вокруг цикла сделай так:и узнаешь точноДа я же так делал..6 секунд получилось. Вопрос то в чем, можно ли как-то по-другому получать данные из запроса? Или уже тут никак не ускорить этот процесс? |
|
|
|
|
Litkevich Yuriy |
18.2.2010, 3:29
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Что ты делаешь в этом цикле? Можешь всё тело цикла привести?
Какое-то страшное время у тебя получается. |
|
|
|
|
kibsoft |
18.2.2010, 14:43
Сообщение
#10
|
|
Участник ![]() ![]() Группа: Участник Сообщений: 180 Регистрация: 21.7.2009 Из: Самара Пользователь №: 928 Спасибо сказали: 14 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 18.2.2010, 4:29) Link Что ты делаешь в этом цикле? Можешь всё тело цикла привести? Какое-то страшное время у тебя получается. Таблица с двумя столбцами. Добавляем данные в QHash. while(query.next()) hash[query.value[0].toString()]=query.value[1].toInt(); |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 23.12.2025, 18:44 |