Mam zapytanie wsadowe, które codziennie uruchamiam w mojej bazie danych. Wydaje się jednak, że utknął w stanie bezczynności i mam duże trudności z debugowaniem tego, co się dzieje.
Zapytanie to agregacja w tabeli, która jest jednocześnie wstawiana, co, jak sądzę, w jakiś sposób odnosi się do problemu. (Agregacja dotyczy danych z poprzednich dni, więc wstawki nie powinny wpływać na wyniki).
Wskazówki
Używam tego w skrypcie Pythona za pomocą narzędzia sqlalchemy. Jednak ustawiłem poziom transakcji na automatyczne zatwierdzanie, więc nie sądzę, żeby coś się zapakowało w transakcję. Z drugiej strony nie widzę, aby zapytanie zawiesiło się, gdy uruchomię je ręcznie w terminalu sql.
Przez zapytanie
pg_stat_activity
zapytanie początkowo trafia do bazy danych jakostate='active'
. Po około 15 sekundach stan zmienia się na „bezczynny” i dodatkowoxact_start
ustawiony jest naNULL
. Flaga oczekiwania nigdy nie jest ustawiona na wartość true.Zanim zorientowali się trybu automatycznego poziomie transakcji dla SQLAlchemy, to zamiast spędzać czas w stanie
'idle in transaction'
zamiast'idle'
. A może od czasu wprowadzenia tej zmiany zawiesza się nieco rzadziej?
Mam wrażenie, że nie jestem w stanie kopać głębiej niż na tym. Wszelkie informacje zwrotne, nawet wyjaśniające więcej o różnych stanach i istotnych elementach wewnętrznych postgresu, bez jednoznacznej odpowiedzi, byłyby bardzo mile widziane.
COMMIT
zostało wydane żadne polecenie zakończenia transakcji. Wygląda na to, że Twój problem może dotyczyć