powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / забавная фича pg_prepared_statements
8 сообщений из 8, страница 1 из 1
забавная фича pg_prepared_statements
    #39000811
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pg_prepared_statements

авторstatement text The query string submitted by the client to create this prepared statement. For prepared statements created via SQL, this is the PREPARE statement submitted by the client. For prepared statements created via the frontend/backend protocol, this is the text of the prepared statement itself.

на самом деле там будет валяться ВЕСЬ стейтмент . если это батч -- будет весь батч. [т.е. current_query()]

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
BEGIN;
DEALLOCATE ALL;
PREPARE FOO1 (text) AS  SELECT  '1.'||$1;
PREPARE FOO2 (text) AS  SELECT  '2.'||$1;
END;
SELECT * FROM pg_prepared_statements;
------------------------------
'foo1';'BEGIN;
DEALLOCATE ALL;
PREPARE FOO1 (text) AS  SELECT  '1.'||$1;
PREPARE FOO2 (text) AS  SELECT  '2.'||$1;
END;
SELECT * FROM pg_prepared_statements;';'2015-07-06 17:41:56.855617+03';'{text}';t
'foo2';'BEGIN;
DEALLOCATE ALL;
PREPARE FOO1 (text) AS  SELECT  '1.'||$1;
PREPARE FOO2 (text) AS  SELECT  '2.'||$1;
END;
SELECT * FROM pg_prepared_statements;';'2015-07-06 17:41:56.855617+03';'{text}';t




что, впрочем, не мешает выполняться по вызову только самому стейтменту.

-- смотрю возможность генерировать пакеты как лист стейтментов и лист их вызовов одним динамом -- довольно дорого будет в каждый "statment" поместить всю многотысячезнаковую строку.
печалька.

надо будет нарезать сами стейтменты на loop-е. "отдельными стейтментами", т.с.

а англичане, меж тем, ружья кирпичом не чистятЪ1111
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39000819
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq<>надо будет нарезать сами стейтменты на loop-е. "отдельными стейтментами", т.с.
ашипка вышел -- это же один SQL--динамо. исполняемый пачкой. как в нем отдельно стоящий loop нарисовать -- х.з.

не выходит каменный цветок.
придется таки с клиента все это делать. а не на сервере. если делать.
вот жишь до чего довёл планету этот фигляр пж
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39002973
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

dblink к самому себе с шарингом транзакции ))
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39002974
Фотография Warstone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Больше извращений богу извращений
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39003145
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Warstoneqwwq,

dblink к самому себе с шарингом транзакции ))

можно, но там мыслился аккуратный выборочный DEALLOCATE , у которого нет "IF EXISTS" , а стало быть только через динамику в анонимном блоке. -- т.е. "пакет" должен будет представлять собой анонимный блок с вызовом через dblink чеков тамошнего набора стейтментов, с [уничтожением и ] созданием каждого отдельным стейтментом, а потом -- пересылку батча в то же соединение 100--тыщщ--мильонов символов в dblink. т.е. 2 раза передаем весь пакет -- в вызов, собственно, и в дблинк -- потом. А это -- дорого, думается.

при этом, если мы подымаем соединение автономии под задачу -- делать в нём "аккуратный deallocate" -- бесмыссленно -- это соединение наше заведомо под контролируемую только нами задачу -- там можно и не церемониться

пока сделал тупо deallocate all; в батче.
//пг_препаред_ст-тс -- вьюха, и каррент стейтмент там не хранится, слава яйцам, а вот опрос её -- дорог, потому что это вьюха на функции, и функция будет возвращать миллионы символов в поле, которое не опрашивается. -- избавляемся от опроса => нема проблем

вроде шустро получилось -- порядок (десятичный), как минимум, сэкономил. правда там не чистые insert/update/delete, а самопальные мерджи со сложным условием [помесь репликации с синхронизацией]. особо радует -- что на очень большом батче без препаред сервер тупо уходит в recovery [настройки памяти оптимистические, судя по всему] -- а с препарами -- оттарабахивает за несколько сек, и не жужжит.

но самое смешное -- всё это [пока] для того, чтобы проверить, как это будет работать в случае динамического партицирования. (когда набор партиций, лежащих под "таблицей" меняется в процессе обработки стейтментов батча--транзакции, а стейтменты отпрепарены только в её начале.

-- написать -- написал, теперь думать буду, как это протестировать на непротиворечивость и устойчивость к "динамическому" партицированию.
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39003458
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

Мсье знает толк в извращениях. :)
То что на выходе получится кто то кроме вас сможет понять и поддерживать?
А через 3 года?

PS: 15 лет работы с Postgresql приучили к тому что самые простые и дубовые решения лучше всего если они обеспечивают приемлемую производительность (так как были моменты когда через 3 года после запуска я не мог понять как работает особо хитрая система написанная лично мной в подобном стиле :)).

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39003798
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk, судя по его вопросам в топике, человек экспериментирует на тестовой
машине. Это нормально, тоже так делаю. Как-то ради прикола пробовал воспроизвести
даже примеры с мутирующими таблицами из ораклового учебника. Не получилось-:)
Фракталы Мандельброта зато получались ничё так.
...
Рейтинг: 0 / 0
забавная фича pg_prepared_statements
    #39003799
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk> самые простые и дубовые решения лучше всего<

двумя руками за
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / забавная фича pg_prepared_statements
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]