Zgodnie z komentarzem do tego pytania, które zadałem na temat bezczynnych połączeń w PostgreSQL 9.2 , niektóre niezaangażowane transakcje (prawdopodobnie związane z niektórymi z tych bezczynnych połączeń) mogą powodować pewne problemy z wydajnością.
Jaki jest dobry sposób na ustalenie, czy są niezatwierdzone transakcje (punkty bonusowe, jeśli istnieje sposób, aby sprawdzić, czy połączenie, na którym się znajdują, jest bezczynne)?
Dziękuję bardzo!
postgresql
database-design
performance
Juan Carlos Coto
źródło
źródło
pgtop
. Możesz także wyszukać wiersze z informacją o „bezczynności w transakcji” na wyjściups aux
.pgtop
wygląda interesująco; czy istnieje odpowiednik dla systemu Windows?Odpowiedzi:
Jeśli chcesz zobaczyć, ile masz wolnych połączeń, które mają otwartą transakcję, możesz użyć:
Spowoduje to wyświetlenie listy otwartych połączeń będących w stanie bezczynności, które również mają otwartą transakcję.
Powiedziawszy to, nie mogę odtworzyć otwartego połączenia w stanie bezczynności z otwartą transakcją. Być może ktoś inny może podać szczegółowe informacje, jak to zrobić.
źródło
state
kolumna jest obecna tylko w wersji 9.2. I dla mnie wygląda na to, że właściwym stanem jest „bezczynność w transakcji”.state = 'idle'
ma nie oznaczać otwartą transakcję.I cannot recreate an open connection in the idle state that has an open transaction.
Otwórz dwa połączenia z bazą danych i wpisz „begin;” w jednym. W drugim uruchom powyższe zapytanie, a będziesz miećidle in transaction
.