crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Многопоточность при работе с БД
kibsoft
  опции профиля:
сообщение 15.2.2010, 20:45
Сообщение #11


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Не явно их не использую..а как beginTransaction() у QSqlDriver?
просто в БД я вообще не силен, по ним ничего толком не читал..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 15.2.2010, 21:07
Сообщение #12


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Цитата(Litkevich Yuriy @ 15.2.2010, 20:24) *
вот не могу вспомнить/найти, где это обсуждалось. Явное использование транзакции помогало ускорить процесс.

Ну да, при последовательном выполнении инструкций, но здесь используется execBatch(), который поддерживается Ораклом. В этом случае данные пакуются в массивы и передаются на сервер, где уже вставляются. По-моему так :)

Но попробовать явно начать-закончить транзакцию все равно стоит, а то мало ли (:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.2.2010, 21:20
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(MoPDoBoPoT @ 16.2.2010, 0:07) *
Но попробовать явно начать-закончить транзакцию все равно стоит, а то мало ли (:
тем более, что это не сложно:
QSqlDatabase::database().transaction();
...
QSqlDatabase::database().commit();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 15.2.2010, 21:35
Сообщение #14


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 15.2.2010, 22:20) *
Цитата(MoPDoBoPoT @ 16.2.2010, 0:07) *
Но попробовать явно начать-закончить транзакцию все равно стоит, а то мало ли (:
тем более, что это не сложно:
QSqlDatabase::database().transaction();
...
QSqlDatabase::database().commit();



При явном указании ничего не изменилось :(
На sql.ru дали вот такой запрос:
alter session set skip_unusable_indexes=true, ошибка теперь не выводится и execBatch() возвращает true, но данные в таблицу не заносятся :huh:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 18.2.2010, 19:02
Сообщение #15


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

Спасибо сказали: 44 раз(а)




Репутация:   9  


Чем, собственно, все закончилось?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 20.2.2010, 0:19
Сообщение #16


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Цитата(MoPDoBoPoT @ 18.2.2010, 20:02) *
Чем, собственно, все закончилось?

Кончилось все хорошо, с 6 секунд парсинга и записи в БД "Войны и мир" ускорил до 1,6 :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.2.2010, 0:58
Сообщение #17


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kibsoft @ 20.2.2010, 3:19) *
Кончилось все хорошо, с 6 секунд парсинга и записи в БД "Войны и мир" ускорил до 1,6
чем ускорил?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 20.2.2010, 12:46
Сообщение #18


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 20.2.2010, 1:58) *
Цитата(kibsoft @ 20.2.2010, 3:19) *
Кончилось все хорошо, с 6 секунд парсинга и записи в БД "Войны и мир" ускорил до 1,6
чем ускорил?

Все оставил прежним, но индекс сделал не уникальным(уникальность у меня проверяется в программе). Ну и убрал лишний столбец ID с автоинкрементом(незнаю зачем вообще его в данном случае делал..)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.1.2025, 0:56