DBAtlas · Atlas für Datenbankbetrieb

Aktive Sessions / laufende Abfragen anzeigen

Oracle

SELECT sid, serial#, username, status, sql_id, machine, program
FROM v$session
WHERE type = 'USER' AND status = 'ACTIVE';

v$session liefert die aktuell aktiven Sessions. Für den vollständigen SQL-Text v$sql über sql_id joinen.

PostgreSQL

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

state = 'active' zeigt die Sessions, die gerade eine Abfrage ausführen. Laufzeiten aus backend_start / query_start berechnen.

MySQL

SELECT id, user, host, db, command, time, state, info
FROM information_schema.processlist
WHERE command <> 'Sleep';
-- Shortcut: SHOW FULL PROCESSLIST;

Unter MySQL 8 / MariaDB hält performance_schema.processlist weniger Locks.

SQL Server

SELECT r.session_id, s.login_name, r.status, r.command,
       r.cpu_time, r.total_elapsed_time, t.text AS sql_text
FROM sys.dm_exec_requests r
JOIN sys.dm_exec_sessions s ON r.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE s.is_user_process = 1;

Für einen schnellen Überblick: EXEC sp_who2 'active';

MongoDB

db.currentOp({ "active": true })

Lang laufende Operationen filtern: db.currentOp({ active: true, secs_running: { $gt: 5 } })

Redis

CLIENT LIST
# For a summary: INFO clients

Da Redis single-threaded ist, werden statt „laufender Abfragen“ die verbundenen Clients aufgelistet. Für langsame Befehle SLOWLOG GET verwenden.

In DBAtlas öffnen →