![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
evgen55 |
![]()
Сообщение
#11
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
lanz |
![]()
Сообщение
#12
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Мнгновенно это сколько в миллисекундах?
![]() |
|
|
evgen55 |
![]()
Сообщение
#13
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Прежде всего посмотрите, где у вас задержка, в Qt? При соединении с сервером? На сервере? В зависимости от этого нужно смотреть что конкретно оптимизировать. Любой запрос (сама функция exec) выполняется 40 милисекунд, а в phpmyadmin выполняется мгновенно Отображение строк 0 - 24 (4274 всего, Запрос занял 0.0018 сек.) |
|
|
lanz |
![]()
Сообщение
#14
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Отображение строк 0 - 24 (4274 всего, Запрос занял 0.0018 сек.) Это возможно сравнение яблок с апельсинами. 0.0018 это то что показывает phpmyadmin, я если честно не знаю, как он меряет, что он включает в это время и как вы меряли 40 мс. Приложите пожалуйста минимальный проект с бенчмарком чтобы можно было конкретно уже смотреть. Кроме того - существует ли проблема вообще? Т.е. вы наблюдаете тормоза при вставке или вам просто не нравится число 40? ![]() Согласитесь, что несколько странно видеть сишный код в 20 раз медленнее php, не верю ![]() |
|
|
evgen55 |
![]()
Сообщение
#15
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Отображение строк 0 - 24 (4274 всего, Запрос занял 0.0018 сек.) Это возможно сравнение яблок с апельсинами. 0.0018 это то что показывает phpmyadmin, я если честно не знаю, как он меряет, что он включает в это время и как вы меряли 40 мс. Приложите пожалуйста минимальный проект с бенчмарком чтобы можно было конкретно уже смотреть. Кроме того - существует ли проблема вообще? Т.е. вы наблюдаете тормоза при вставке или вам просто не нравится число 40? ![]() Согласитесь, что несколько странно видеть сишный код в 20 раз медленнее php, не верю ![]() int id;
Соответственно когда селект возвращает примерно 4000 объектов и внутренний цикл содержит примерно 10-20 item получается слишком долго |
|
|
lanz |
![]()
Сообщение
#16
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Во первых QTime на Windows возвращает с точностью кратной то ли 15, то ли 20 мс, в любом случае, это слишком плохо.
Попробуйте QElapsedTimer, интерфейс тот же, а точность обычно лучше. http://doc.qt.io/qt-4.8/qelapsedtimer.html Если все равно 40 мс будет получаться, замерьте время всего цикла(с 40000-80000 вставок) и разделите, тогда получите точное время. 40000-80000 вставок это довольно много, попробуйте все таки execBatch и если не поможет, то попробуйте просто слепить в строке нужный запрос на вставку всех строк за раз и его выполнить - получите скорость вставки напрямую. |
|
|
evgen55 |
![]()
Сообщение
#17
|
Новичок Группа: Неактивирован Сообщений: 8 Регистрация: 24.7.2017 Пользователь №: 4590 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Во первых QTime на Windows возвращает с точностью кратной то ли 15, то ли 20 мс, в любом случае, это слишком плохо. Попробуйте QElapsedTimer, интерфейс тот же, а точность обычно лучше. http://doc.qt.io/qt-4.8/qelapsedtimer.html Если все равно 40 мс будет получаться, замерьте время всего цикла(с 40000-80000 вставок) и разделите, тогда получите точное время. 40000-80000 вставок это довольно много, попробуйте все таки execBatch и если не поможет, то попробуйте просто слепить в строке нужный запрос на вставку всех строк за раз и его выполнить - получите скорость вставки напрямую. Спасибо большое, слепить запрос в одну строку помогло. execBatch пробовал он не поддерживается |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 23:17 |