Здравствуйте, гость ( Вход | Регистрация )
kibsoft | Дата 20.2.2010, 12:46 |
Кончилось все хорошо, с 6 секунд парсинга и записи в БД "Войны и мир" ускорил до 1,6 чем ускорил?Все оставил прежним, но индекс сделал не уникальным(уникальность у меня проверяется в программе). Ну и убрал лишний столбец ID с автоинкрементом(незнаю зачем вообще его в данном случае делал..) |
|
Litkevich Yuriy | Дата 20.2.2010, 0:58 |
Кончилось все хорошо, с 6 секунд парсинга и записи в БД "Войны и мир" ускорил до 1,6 чем ускорил? |
|
kibsoft | Дата 20.2.2010, 0:19 |
Чем, собственно, все закончилось? Кончилось все хорошо, с 6 секунд парсинга и записи в БД "Войны и мир" ускорил до 1,6 |
|
MoPDoBoPoT | Дата 18.2.2010, 19:02 |
Чем, собственно, все закончилось? | |
kibsoft | Дата 15.2.2010, 21:35 |
Но попробовать явно начать-закончить транзакцию все равно стоит, а то мало ли (: тем более, что это не сложно:
При явном указании ничего не изменилось На sql.ru дали вот такой запрос: alter session set skip_unusable_indexes=true, ошибка теперь не выводится и execBatch() возвращает true, но данные в таблицу не заносятся |
|
Litkevich Yuriy | Дата 15.2.2010, 21:20 |
Но попробовать явно начать-закончить транзакцию все равно стоит, а то мало ли (: тем более, что это не сложно:
|
|
MoPDoBoPoT | Дата 15.2.2010, 21:07 |
вот не могу вспомнить/найти, где это обсуждалось. Явное использование транзакции помогало ускорить процесс. Ну да, при последовательном выполнении инструкций, но здесь используется execBatch(), который поддерживается Ораклом. В этом случае данные пакуются в массивы и передаются на сервер, где уже вставляются. По-моему так Но попробовать явно начать-закончить транзакцию все равно стоит, а то мало ли (: |
|
kibsoft | Дата 15.2.2010, 20:45 |
Не явно их не использую..а как beginTransaction() у QSqlDriver? просто в БД я вообще не силен, по ним ничего толком не читал.. |
|
Litkevich Yuriy | Дата 15.2.2010, 20:24 |
там уже оптимизировано в этом плане. вот не могу вспомнить/найти, где это обсуждалось. Явное использование транзакции помогало ускорить процесс. |
|
MoPDoBoPoT | Дата 15.2.2010, 20:07 |
Не в этом дело..без отлючения/влючения индекса и с позиционным работает...но дольше вставка идет чем без индекса, но зато обновление базы с индексом намного быстрее.. вот я и хочу на время вствки его отключать, но видимо так нельзя.. Я в курсе. Конечной целью у тебя является увеличить скорость записи данных в БД, потому я и сделал замечание. Собственно, подготовка запроса (prepare) служит для того, чтобы СУБД разобрало текст запроса один раз и поместила его в библиотечный кэш, а пользовалось им много раз (сам разбор запроса занимает некоторое время). Насчет индексов - спроси про это на sql.ru, там прохаванные в этом люди. kibsoft, ты транзакции используешь? Так он же execBatch() пользуется, там уже оптимизировано в этом плане. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 27.4.2024, 9:37 |