Название: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: nickla от Июнь 05, 2012, 11:03 Я вставляю строку в таблицу. Все проходит успешно и быстро, но для всех qt соединений эта строка почемуто появляется с задержкой в 20-30 секунд. Вставляю строку и смотрю таблицу в PgAdmin - все отлично и появляется моментально.
Пробовал делать следующее: добавляю строку, выключаю программу, включаю и смотрю - строки нет и появляется она с той же задержкой. Создается ощущение что постгрес специально для qt соединений и только этой таблицы использует задержку в 20-30 сек. Данная фигня возникает только с одной моей таблицей. Добавляю записи в другие - все тут же появляется как и положено. Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: nickla от Июнь 05, 2012, 11:04 Кто нибудь сталкивался с таким? Полдня бьюсь не могу понять почему. Кажется что виновато именно QT - както не так оно работает чтоли с постгресом раз такое возникает на эту таблицу.
К данной таблице идет запрос 1 раз в секунду. Теоритически может какой кеш где в постгресе заюзался? Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: nickla от Июнь 05, 2012, 11:13 Я использую вот такой код для вставки:
Код: QString sql = this->createInsertSql(table, field); Получаю строки используя примерно вот такой код: Код: QString sql = "SELECT " + DbTableField::instance()->getFieldsAsSQL(TABLE_ORDER, "to1") Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: V1KT0P от Июнь 05, 2012, 13:19 Может быть проблема с транзакциями? Попробуй их вручную коммитить("bool QSqlDatabase::commit()").
Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: GraninDm от Июнь 06, 2012, 11:50 Посмотрите план запроса select...
Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: RVZ от Июнь 13, 2012, 13:42 Цитировать Посмотрите план запроса select... Действительно как результат в ПгАдмин проверяешь???? Надо получившийся селект выполнить и посмотреть сколько он будет выполнятся. P.S. Сейчас только начинаю работать с PGSQL (9.1) работает быстро!!! ни каких задержек не замечал (правдо соединение одно на все время жизни приложения). Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: Alex_C от Июнь 23, 2012, 00:13 но для всех qt соединений эта строка почемуто появляется с задержкой в 20-30 секунд. Думаю, моя информация Вам поможет. Не знаю как в postgresql , но в MS Access базах существует аналогичное "правило 4 секунд" - в таблицу все записывается, но другие соединения могут увидеть внесенные изменения только через 4 секунды. Зачем это сделано - не знаю. Но в MSDN есть решение этой проблемы. Думаю, что покопавшись в доке по postgresql найдете нужное решение. Название: Re: Вставленая в postgresql через QSqlQuery строка появляется с задержкой Отправлено: Alex_C от Июнь 23, 2012, 00:15 Да. еще раз хочу обратить внимание: ни запросы, ни трансзакции - тут не причем. Это сугубо установки БД.
|