DBAtlas · Atlas d'exploitation des bases de données

Ce qui s'exécute en ce moment : sessions actives, latence, verrous et transactions (sys.session)

MySQLPerformances

Commande

SELECT conn_id, user, db, command, state, time,
       LEFT(current_statement, 100) AS current_statement,
       statement_latency, progress, lock_latency,
       rows_examined, full_scan, tmp_disk_tables,
       trx_state, trx_latency, last_wait
FROM sys.session
WHERE command <> 'Sleep' OR trx_state = 'ACTIVE'
ORDER BY time DESC
LIMIT 25;

Ce que fait la commande

Enrichit SHOW PROCESSLIST avec les données de performance_schema : latence de l'instruction en cours, pourcentage de progression, temps d'attente de verrou, lignes examinées, scan complet / table temporaire sur disque et état de la transaction ouverte sur une seule ligne. Liste aussi les sessions en Sleep qui gardent une transaction ouverte.

Quand l'utiliser

Dans les 30 premières secondes d'un incident : quelle requête s'exécute depuis combien de temps, qui attend des verrous, quelle session inactive garde une transaction ouverte.

Attention

sys.session effectue plusieurs jointures sur performance_schema ; avec des milliers de connexions, la requête elle-même peut prendre plusieurs secondes, utilisez donc les vues x$ et LIMIT pour une surveillance fréquente. progress n'est renseigné qu'avec les instruments de stage activés et pour les opérations qui rapportent leur progression, comme ALTER. Une session en Sleep avec trx_state=ACTIVE est une transaction oubliée par une application / un pool de connexions utilisant autocommit=0, la cause la plus fréquente des problèmes de metadata lock et de purge.

Ouvrir dans DBAtlas →

Voir aussi