postgres - monitorowanie transakcji

postgres - monitorowanie transakcji
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 1683
0

Hej. Powiedzmy, że istnieje taka prosta sytuacja:

Kopiuj
CREATE TABLE mytab
(
  class int NOT NULL,
  value int NOT NULL
);
INSERT INTO mytab VALUES
(1, 10), (1, 20), (2, 100), (2, 200);

Zaczyna się transakcja A:

Kopiuj
BEGIN;
SELECT SUM(value) FROM mytab WHERE class = 1;
INSERT INTO mytab VALUES (2, 30);

w międzyczasie wchodzi mała szybka transakcja B:

Kopiuj
BEGIN;
SELECT SUM(value) FROM mytab WHERE class = 2;
INSERT INTO mytab VALUES (1, 300);
COMMIT;

^-- ta transakcja przechodzi

kończymy transakcje A:

Kopiuj
COMMIT;

kończy się spodziewanym błędem could not serialize access due to read/write among transactions .... itd

jakie monitory zapuszczacie na takie sytuacje (aby ustalić dlaczego A się zblokowała) ?
Wykorzystujecie logi postgresa? - (logujecie sobie zapytania od razu z id transakcji <- aby pogrupować per transakcja ? )
Własne skrypty korzystające z widoków pg_stat_*, pg_locks itd... ?
macie lepsze narzędzia ?

CeKa
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 204
0

user image

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.