PostgreSQL Performance & Query Optimization · Lektion

Laufende Aktivitäten mit pg_stat_activity diagnostizieren

Lernen Sie, die Ansicht pg_stat_activity zu verwenden, um die aktuelle Aktivität jeder Verbindung zu sehen, lang laufende und blockierte Abfragen zu finden und problematische Sitzungen sicher abzubrechen oder zu beenden.

Lektion 4 von 413 Schritte

Laufende Aktivitäten mit pg_stat_activity diagnostizieren ist eine kostenlose PostgreSQL Performance & Query Optimization-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PostgreSQL Performance & Query Optimization-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PostgreSQL Performance & Query Optimization-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Your Window into Live Sessions

The pg_stat_activity view has one row per server connection. It is the first place to look when the database feels slow or stuck, showing what each session is doing this instant.

The Key Columns

The most useful columns are:

  • pid: the backend process id
  • state: active, idle, idle in transaction
  • query: the current or last SQL text
  • wait_event: what the session is waiting on

A Basic Look

Select the essentials for all active sessions.

SELECT pid, usename, state, wait_event, query
FROM pg_stat_activity
WHERE state <> 'idle';

Finding Long-Running Queries

Compute how long each active query has been running by subtracting query_start from now.

SELECT pid, now() - query_start AS runtime, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY runtime DESC;

Idle in Transaction Danger

A session in idle in transaction holds locks and pins the oldest XID without doing work. These can block vacuum and other sessions. Hunt them down.

SELECT pid, now() - xact_start AS tx_age, query
FROM pg_stat_activity
WHERE state = 'idle in transaction'
ORDER BY tx_age DESC;

Seeing What a Session Waits On

The wait_event_type and wait_event columns reveal whether a session is waiting on a lock, on I/O, or on a client. This pinpoints the bottleneck.

SELECT pid, wait_event_type, wait_event, query
FROM pg_stat_activity
WHERE wait_event IS NOT NULL;

Finding Who Blocks Whom

Combine activity with pg_blocking_pids to see which sessions are blocking others.

SELECT pid, pg_blocking_pids(pid) AS blocked_by, query
FROM pg_stat_activity
WHERE cardinality(pg_blocking_pids(pid)) > 0;

Cancelling a Query

pg_cancel_backend stops the current query in a session but leaves the connection open. Try this first — it is the gentler option.

SELECT pg_cancel_backend(12345);

Terminating a Connection

If cancelling is not enough, pg_terminate_backend closes the whole connection, rolling back its transaction. Use it for stuck idle-in-transaction sessions.

SELECT pg_terminate_backend(12345);

Building a Monitoring Habit

Good practice:

  • Set idle_in_transaction_session_timeout to auto-kill stragglers
  • Set statement_timeout to bound runaway queries
  • Watch pg_stat_activity during incidents before reaching for the kill switch

Counting Connections by State

To gauge overall pressure, summarize how many connections sit in each state. A pile of idle-in-transaction or active sessions hints at pooling or query problems.

SELECT state, count(*)
FROM pg_stat_activity
GROUP BY state
ORDER BY count(*) DESC;

Quick Check

Test your live-monitoring knowledge.

Recap

You learned live diagnosis with pg_stat_activity:

  • One row per connection with state, query, and wait info
  • Find long queries via now() - query_start
  • Hunt idle-in-transaction sessions that block vacuum
  • pg_blocking_pids reveals who blocks whom
  • Cancel a query or terminate a backend when needed
Kostenlos starten

Lerne SQL mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
22
Lektionen
88

Häufig gestellte Fragen

Ist die Lektion „Laufende Aktivitäten mit pg_stat_activity diagnostizieren“ kostenlos?

Ja — der vollständige Text von „Laufende Aktivitäten mit pg_stat_activity diagnostizieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PostgreSQL Performance & Query Optimization-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PostgreSQL Performance & Query Optimization-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Laufende Aktivitäten mit pg_stat_activity diagnostizieren“?

Lernen Sie, die Ansicht pg_stat_activity zu verwenden, um die aktuelle Aktivität jeder Verbindung zu sehen, lang laufende und blockierte Abfragen zu finden und problematische Sitzungen sicher abzubre… Du übst PostgreSQL Performance & Query Optimization mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PostgreSQL Performance & Query Optimization zu starten?

Keine Vorkenntnisse erforderlich. PostgreSQL Performance & Query Optimization auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Laufende Aktivitäten mit pg_stat_activity diagnostizieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PostgreSQL Performance & Query Optimization-Lektion Code schreiben und ausführen?

Ja. Jede PostgreSQL Performance & Query Optimization-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. pg_stat_statements und pg_buffercache verwenden
  2. Logging-Konfiguration für Analysen
  3. Integration externer Monitoring-Tools
  4. Laufende Aktivitäten mit pg_stat_activity diagnostizieren
← Zurück zu PostgreSQL Performance & Query Optimization