|
|
|
create temp table
|
|||
|---|---|---|---|
|
#18+
Добрый день столкнулся с такой проблемой: Иногда в логах вижу ошибку Код: plsql 1. 2. в функции временная таблица создается так: Код: plsql 1. 2. 3. Появилась после перехода с версии 9.2 на 9.3 к БД подключаюсь через pgbouncer у него в настройках стоит pool_mode = transaction ошибка плавающая, не могу отследить закономерность появления насколько я понял 11904532 это OID временной таблицы заметил что в логе код 11904532 повторяется, хотя по логике он каждый раз должен быть новый из за чего может быть такая проблема ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 09:19 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet, Если струткура временной таблицы постоянна, а данные вам нужны только во время транзакции, то я бы на вашем месте включил pgBouncer строку инициализации Код: plsql 1. Не нужно лочить pg_catalog на каждый вызов функции, не нужно думать о существовании таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 10:31 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
tadminrassvet, Если струткура временной таблицы постоянна, а данные вам нужны только во время транзакции, то я бы на вашем месте включил pgBouncer строку инициализации Код: plsql 1. Не нужно лочить pg_catalog на каждый вызов функции, не нужно думать о существовании таблицы. а почему пг_каталог вдруг лочится?? И что ВЕСЬ что-ли???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 12:06 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet, чисто теоретически проблема может быть изза этого Код: sql 1. , а временная таблица у вас живёт в сессии. pgbouncer не гарантирует, что для следующей транзакции вам достанется та самая таблица (та самая сесия в которой вы её создали), или достанется она вам вообще не известно, поскольку в другой сессии та самая таблица может быть ещё не создана. с pgbouncer познакомился недавно, так что могу ошибатся, но думаю что дела обстоят именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 12:10 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet в функции временная таблица создается так: уточните ,плз: в ф--ии на клиенте ? или в ф--ии на сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 12:48 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
tadminЕсли струткура временной таблицы постоянна, а данные вам нужны только во время транзакции, то я бы на вашем месте включил pgBouncer строку инициализации Код: plsql 1. Не совсем вас понял, это разве в pgBouncer можно делать ? или вы имеете ввиду в сам запрос создания временной таблицы добавить команду on commit delete rows ? и чем это лучше ON COMMIT DROP? Lonepsycho чисто теоретически проблема может быть изза этого Код: plsql 1. В 9.2 такой проблемы не было, специально поднял логи и искал, да и временная таблица нужна только в ту транзакцию когда она создается. qwwq уточните ,плз: в ф--ии на клиенте ? или в ф--ии на сервере? Функция создана на сервере и клиент ее переодически вызывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 13:17 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet Функция создана на сервере и клиент ее переодически вызывает Ok т.е. баунсер не при делах. ещё вопрос: -- что такое washer.t_service и какой у неё tableoid . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 13:26 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet, как вариант делайте EXECUTE 'CREATE temp TABLE AS ....' --- если дуло исчезнет -- косяк, наиболее вероятно, в 9.3. (какая минорная ?) [поиск в интернетах по тексту ошибки выведет вас на всякое разное]. если нет -- где--то у вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 13:31 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
[quot rassvet... да и временная таблица нужна только в ту транзакцию когда она создается.[/quot] имменно по этому вам и предлагали дополнить строку создания таблицы частью ON COMMIT, правда я бы делал ON COMMIT DROP; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 13:55 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
qwwqещё вопрос: -- что такое washer.t_service и какой у неё tableoid . это просто таблица SELECT oid FROM pg_class WHERE relname = 't_service' возвращает "oid" "4451156" "4451250" "4451407" "4451542" "4452009" (их несколько видимо в разных схемах) qwwqкак вариант делайте EXECUTE 'CREATE temp TABLE AS ....' --- если дуло исчезнет -- косяк, наиболее вероятно, в 9.3. (какая минорная ?) 9.3.10 версия которая по умолчанию поставилась из http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main попробую переписать запрос на EXECUTE с ON COMMIT DROP спасибо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 14:05 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet, тут вопрос как вы пользуетесь таблицей. если используете в той самой функции где её создавали (т.е. в той самой транзакции), тогда qwwq прав, дело не в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 14:08 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
Да, использую в той же самой фукнции в течении одной транзакции и ошибка выходит на команде создания временной таблицы, а не когда я к ней обращаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 14:21 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
rassvet SELECT oid FROM pg_class WHERE relname = 't_service' Код: sql 1. или Код: sql 1. и ещё попробуйте Код: sql 1. скорее всего ничего не увидите. но вдруг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 14:39 |
|
||
|
create temp table
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. вернул 161 тыщу записей с значением 4451542 Код: plsql 1. вернул 4451542 Код: plsql 1. вернул 11904532 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2016, 14:50 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39173770&tid=1997425]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 394ms |

| 0 / 0 |
