Здравствуйте, гость ( Вход | Регистрация )
evgen55 | Дата 2.8.2017, 14:23 |
Во первых QTime на Windows возвращает с точностью кратной то ли 15, то ли 20 мс, в любом случае, это слишком плохо. Попробуйте QElapsedTimer, интерфейс тот же, а точность обычно лучше. http://doc.qt.io/qt-4.8/qelapsedtimer.html Если все равно 40 мс будет получаться, замерьте время всего цикла(с 40000-80000 вставок) и разделите, тогда получите точное время. 40000-80000 вставок это довольно много, попробуйте все таки execBatch и если не поможет, то попробуйте просто слепить в строке нужный запрос на вставку всех строк за раз и его выполнить - получите скорость вставки напрямую. Спасибо большое, слепить запрос в одну строку помогло. execBatch пробовал он не поддерживается |
|
lanz | Дата 1.8.2017, 11:21 |
Во первых QTime на Windows возвращает с точностью кратной то ли 15, то ли 20 мс, в любом случае, это слишком плохо. Попробуйте QElapsedTimer, интерфейс тот же, а точность обычно лучше. http://doc.qt.io/qt-4.8/qelapsedtimer.html Если все равно 40 мс будет получаться, замерьте время всего цикла(с 40000-80000 вставок) и разделите, тогда получите точное время. 40000-80000 вставок это довольно много, попробуйте все таки execBatch и если не поможет, то попробуйте просто слепить в строке нужный запрос на вставку всех строк за раз и его выполнить - получите скорость вставки напрямую. |
|
evgen55 | Дата 1.8.2017, 10:41 |
Цитата Отображение строк 0 - 24 (4274 всего, Запрос занял 0.0018 сек.) Это возможно сравнение яблок с апельсинами. 0.0018 это то что показывает phpmyadmin, я если честно не знаю, как он меряет, что он включает в это время и как вы меряли 40 мс. Приложите пожалуйста минимальный проект с бенчмарком чтобы можно было конкретно уже смотреть. Кроме того - существует ли проблема вообще? Т.е. вы наблюдаете тормоза при вставке или вам просто не нравится число 40? ![]() Согласитесь, что несколько странно видеть сишный код в 20 раз медленнее php, не верю ![]() int id;
Соответственно когда селект возвращает примерно 4000 объектов и внутренний цикл содержит примерно 10-20 item получается слишком долго |
|
lanz | Дата 1.8.2017, 9:13 |
Цитата Отображение строк 0 - 24 (4274 всего, Запрос занял 0.0018 сек.) Это возможно сравнение яблок с апельсинами. 0.0018 это то что показывает phpmyadmin, я если честно не знаю, как он меряет, что он включает в это время и как вы меряли 40 мс. Приложите пожалуйста минимальный проект с бенчмарком чтобы можно было конкретно уже смотреть. Кроме того - существует ли проблема вообще? Т.е. вы наблюдаете тормоза при вставке или вам просто не нравится число 40? ![]() Согласитесь, что несколько странно видеть сишный код в 20 раз медленнее php, не верю ![]() |
|
evgen55 | Дата 1.8.2017, 8:16 |
Прежде всего посмотрите, где у вас задержка, в Qt? При соединении с сервером? На сервере? В зависимости от этого нужно смотреть что конкретно оптимизировать. Любой запрос (сама функция exec) выполняется 40 милисекунд, а в phpmyadmin выполняется мгновенно Отображение строк 0 - 24 (4274 всего, Запрос занял 0.0018 сек.) |
|
lanz | Дата 31.7.2017, 9:06 |
Мнгновенно это сколько в миллисекундах? ![]() |
|
evgen55 | Дата 31.7.2017, 8:56 |
Прежде всего посмотрите, где у вас задержка, в Qt? При соединении с сервером? На сервере? В зависимости от этого нужно смотреть что конкретно оптимизировать. Любой запрос (сама функция exec) выполняется 40 милисекунд, а в phpmyadmin выполняется мгновенно |
|
lanz | Дата 28.7.2017, 16:13 |
Прежде всего посмотрите, где у вас задержка, в Qt? При соединении с сервером? На сервере? В зависимости от этого нужно смотреть что конкретно оптимизировать. | |
evgen55 | Дата 27.7.2017, 20:40 |
Что тотут не так, транзакции не поддерживаются - это очень странно. Цитата Note that some databases need to be open() before this can be determined. Спасибо, теперь только DB.driver()->hasFeature(QSqlDriver::BatchOperations); false Можно ли это както исправить? |
|
lanz | Дата 27.7.2017, 19:09 |
Что тотут не так, транзакции не поддерживаются - это очень странно. Цитата Note that some databases need to be open() before this can be determined. |
|
Просмотр темы полностью (откроется в новом окне) | |
![]() |
|
Текстовая версия | Сейчас: 14.7.2025, 4:54 |