|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Коллеги, привет. Такое дело. В анонимном блоке(потом хочу впихнуть в процедуру), в цикле, тяну данные из другой БД того же кластера по dblink маленькими кусочками. По схеме: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Так вот, заметил что pg_stat_activity для этого dblink на каждом шаге цикла показывает один и тот же backend_xmin. А это значит что индексы будут пухнуть в БД из которой тяну данные. (выполняется цикл минут 20, несколько итераций). Скажите как корректно организовать запрос данных в цикле через dblink чтобы в БД, из которой тяну не пухли индексы? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 12:47 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Причем, вставление коммитов ничего не меняет: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 12:48 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Синий Слон Причем, вставление коммитов ничего не меняет: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
включаем полный лог запросов на базе смотрим что dblink отправляет в базе куда соединяется думаем или присылаем сюда для анализа. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 23:33 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Maxim Boguk Синий Слон Причем, вставление коммитов ничего не меняет: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
включаем полный лог запросов на базе смотрим что dblink отправляет в базе куда соединяется думаем или присылаем сюда для анализа. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Максим, я и так знаю что dblink отправляет. Он отсылает простой короткий селекс типа: SELECT guid FROM table WHERE id<число. Никаких изменений не делает в той БД куда идет. Коннект закрывается каждый раз. Не могу понять почему backend_xmin в этом коннекте в БД откуда тянет всегда одинаковый (( Моя задача сделать так чтобы при этой ооперации не пухли индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 02:22 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Синий Слон, Эм странный вопрос... кластер то один ("из другой БД того же кластера")... и xmin горизонт у него естественно общий для всех баз. А у вас в другой транзакции висит анонимный блок работающий который через dblink читает. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 08:51 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Maxim Boguk Синий Слон, Эм странный вопрос... кластер то один ("из другой БД того же кластера")... и xmin горизонт у него естественно общий для всех баз. А у вас в другой транзакции висит анонимный блок работающий который через dblink читает. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru При этом индексы в БД, не где блок, а откуда короткими транзакциями данные селектом тянуться, снапшот держится? Как же реализовать чтобы индексы в БД, из которой селекты, не пухли? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 14:16 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Вообще запутался. Специально разбил огромный и долгий селект на маленькие порции и вынес обработку из оперативной БД, чтобы снепшот не держался. А он оказывается все равно держится :-((( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2020, 00:25 |
|
проблемы с транзакцией при использовании dblink
|
|||
---|---|---|---|
#18+
Синий Слон Вообще запутался. Специально разбил огромный и долгий селект на маленькие порции и вынес обработку из оперативной БД, чтобы снепшот не держался. А он оказывается все равно держится :-((( вопрос какой xmin используется для отсечки - глобальный по кластеру или локальный для базы (в коде есть и то и другое) интересен и его лучше и быстрее просто экспериментом проверить... если таки глобальный (что было бы странно но возможно) - вариантов у вас два 1)вынести обработку на другой физический кластер 2)сделать обработку через процедуру которая сама внутри коммитить будет походу дела а тогда и извращения с dblink не нужны (и разбивать работу на много независимых транзакций в одной процедуре). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2020, 15:01 |
|
|
start [/forum/topic.php?fid=53&fpage=19&tid=1994335]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 334ms |
total: | 477ms |
0 / 0 |