нежданчик

этта
Дата: 30.01.2015 15:18:12
прослал батч вида

BEGIN ; {DO something}; END;
BEGIN ; {DO something}; END;
BEGIN ; {DO something}; END;
........
BEGIN ; {DO something}; END;


-- слежу снаружи -- всё путём -- результаты очередного {DO something}; в табличке всё время появляются.

надумал последить через pg_stat_activity -- а там... -- строка стоит как вкопанная. Все ее xact_start, и прочие state_change -- намертво залипли.

-- т.е. чего-то я в этом деле неверно понимаю.

кто в курсе, что происходит ? и почему ? (не меняется xact_start)
Alexius
Дата: 30.01.2015 15:50:55
этта,

у меня в таком тесте все меняется как надо:

begin; select pg_sleep(1); end;
begin; select pg_sleep(1); end;
begin; select pg_sleep(1); end;
begin; select pg_sleep(1); end;
begin; select pg_sleep(1); end;
begin; select pg_sleep(1); end;
begin; select pg_sleep(1); end;


может не тот процесс в pg_stat_activity?
этта
Дата: 30.01.2015 16:06:48
Alexius,

А вы этот скрипт куда кормите ?

я -- в соединение [окно] пжодмина (читай-- любого клиента, кроме разборчивого по-командам psql [, если того не просить об обратном]), одним сплошным батчем (т.е. он целиком в pg_staе_activity.query и лежит). (т.е. это как-то там называется. multicomand или т.п. mode). Всегда было недосуг последить в пг-стат-активити за такими батчами.


вот думаю теперь -- если пжодмин батч оборачиваетсам,ля в общий BEGIN; END; -- то все равно непонятки выходят -- на первом "моЁм" begin-е notice дожен придти-- его там обычно нет. Да и первый попавшийся END; должен слистнуть транзакцию.

ваш запустил так же -- то же самое (но что оно делает -- я наружу не вижу. у себя то я вижу, что коммиты проходят -- по данным)
Alexius
Дата: 30.01.2015 17:37:20
этта,

в psql. в pgadmin повторяется, да.

это видимо недостаток pg_stat_activity, он похоже считает весь запрос одной транзакцией/частью транзакции, хотя на самом деле это не так.

гугление по multi-statement query и pg_stat_activity/statistics collector ничего не дало, мало кто на это натыкается наверное.
этта
Дата: 30.01.2015 17:55:21
Alexius,

я слегка погуглил, ничего не нашел. Интересно, что отдельные части этого мултистейтмента в логи не попадают. (а могли бы -- по duration).

последний раз тут maxim Bogyk заикался, про эту крайне удобную фичу (13437301).



но забавная ситуация -- "мультистейтмент" один, транзацкий в нем много.
и самое забавное: -- данные-то потихоньку комитятся. а время старта "транзакции" -- ни с места.