Cette page décrit Calíope 1.7, la version que je construis en ce moment. La 1.6 est sur l'App Store pour Mac, iPad, iPhone, Apple Watch, Apple TV et Apple Vision Pro. Le changelog indique dans quelle version chaque fonction est arrivée.

Ajoute un bouton « Ouvrir dans Calíope » à chaque sujet. Ne fonctionne qu'avec l'app installée.

Liste des processus

Afficher les processus actifs

Listez les sessions actives du serveur.

Où le trouver : Espace de travail › Outils › Processus

Ouvrez Processus depuis la barre de navigation de l'espace de travail. Le tableau affiche tous les processus avec les colonnes : ID, Utilisateur, Hôte, Base de données, Commande, Temps, État et SQL.

La liste se rafraîchit d'elle-même dès son ouverture, toutes les secondes indiquées dans Intervalle, et le pied de page compte le temps restant avant le prochain rafraîchissement. ⏸ la met en pause, ▶ la relance et ↻ la relit aussitôt. Utilisez le filtre par utilisateur pour afficher uniquement les processus d'un utilisateur spécifique. Dans le tableau, cliquez ou touchez l'en-tête d'une colonne pour trier selon elle. Sur iPhone, chaque processus s'affiche sur trois lignes, sans colonnes.

SQL Server

Avec SQL Server, le menu n'a pas Kill Query et la barre ne propose pas de Terminer celles qui s'exécutent : là-bas, KILL ferme toute la session, pas seulement sa requête, donc seule la session peut être terminée.

ClickHouse

Avec ClickHouse, chaque ligne est une requête en cours, pas une connexion : l'identifiant est son query_id, et deux colonnes n'existent qu'avec ce moteur, Mémoire et Lignes lues. Sous la liste, seulement s'il y en a, vient la section des mutations inachevées : pour chaque UPDATE ou DELETE mis en file, la table, son identifiant, la commande, les parties restantes et, en cas d'échec, le motif ; une modification mise en file peut échouer sans que personne ne le voie, et ici on le voit. Son bouton ⓧ, Annuler la mutation, demande confirmation et envoie KILL MUTATION ; ce qui a déjà été réécrit reste.

Oracle

Avec Oracle, chaque ligne est une session utilisateur de V$SESSION, et l’identifiant est SID,SERIAL# : le SID seul se répète quand une session se ferme et qu’une autre s’ouvre. État indique l’attente en cours et, s’il y en a une, la session qui la bloque ; SQL est l’instruction en cours ou, pour une session inactive, la dernière qu’elle a envoyée. La connexion de Calíope qui lit la liste porte l’icône de l’ordinateur portable. Voir la liste demande un droit sur V$SESSION (SELECT_CATALOG_ROLE) : sans lui, une barre sous la liste donne le motif du serveur au lieu de l’afficher vide, et dans le Tableau de bord Connexions par utilisateur dit la même chose.

Mots-clés : processus, threads, processlist, SHOW PROCESSLIST, actifs

Tuer un processus

Terminez un thread spécifique du serveur.

Où le trouver : Liste des processus › clic droit › Kill Connection / Kill Query

Ouvrez le menu contextuel d'un processus dans la liste — clic droit sur macOS, appui long sur iPad — et sélectionnez Kill Connection (termine la connexion complète) ou Kill Query (annule uniquement la requête active). Les deux actions affichent une confirmation avant de s'exécuter.

Si le serveur refuse — presque toujours parce que le thread appartient à un autre utilisateur et que votre compte n'a pas le privilège —, une barre sous la liste le dit : « Le thread n° … n’a pas été arrêté : » suivi du motif du serveur. Elle est annoncée et se ferme avec son ✕. Un thread qui meurt bien ne dit rien : il quitte simplement la liste.

SQL Server

Avec SQL Server, le menu n'a que Kill Connection : KILL termine la session entière et annule sa transaction ouverte, et le client qui exécutait la requête reçoit la réponse du serveur indiquant que la session est en cours d'arrêt.

ClickHouse

Avec ClickHouse, le menu n'a que Kill Query : chaque ligne est une requête, il n'y a pas de connexion à fermer à part, et la requête quitte la liste quand elle se termine.

Oracle

Avec Oracle, Kill Connection est ALTER SYSTEM KILL SESSION … IMMEDIATE : la session se termine aussitôt, sa transaction ouverte est annulée et son client perd la connexion (sqlplus affiche ORA-03113). Kill Query est ALTER SYSTEM CANCEL SQL : l’instruction reçoit ORA-01013 et la session reste ouverte. Les deux demandent le privilège ALTER SYSTEM : sans lui elles sont grisées, et une barre sous la liste le dit. La connexion de Calíope qui lit la liste n’est pas proposée à la fermeture.

Apple Vision Pro : le menu contextuel s'ouvre en regardant la ligne et en pinçant sans relâcher.

Avec une étiquette d’environnement qui confirme les écritures, la confirmation de terminer porte son nom dans le titre et ne demande pas deux fois ; avec une étiquette en lecture seule, les boutons et le menu pour terminer n’apparaissent pas.

Mots-clés : kill, tuer, annuler, terminer processus, thread, Kill Connection, Kill Query

Tuer les threads idle ou busy en masse

Annulez en masse les threads qui sont dans un état donné depuis plus de N secondes.

Où le trouver : Liste des processus › Inactifs > / Actifs > · Arrêter

À côté de Inactifs > et Actifs > dans la barre d'outils, saisissez un nombre de secondes et cliquez sur le bouton Arrêter de ce champ. Inactifs ferme toute connexion qui attend depuis plus longtemps ; Actifs annule toute requête qui s'exécute depuis plus longtemps, et laisse sa connexion ouverte. Avant d'agir, Calíope indique combien de threads il a trouvés et demande de confirmer.

Ensuite, la même barre sous la liste le résume : combien des threads trouvés ont été arrêtés et, si le serveur en a refusé, combien et le motif du premier — par exemple « 3 sur 5 arrêtés ; 2 refusés : … ».

MySQLMariaDBAurora

Les threads du serveur lui-même — la réplication et le planificateur d'événements — ne sont jamais inclus.

PostgreSQL

Les processus du serveur lui-même — le checkpointer, l'écrivain du WAL, le lanceur de l'autovacuum — apparaissent dans la liste, mais ne sont jamais inclus.

SQL Server

Avec SQL Server, il n'y a que Inactifs > : KILL ferme la session entière, donc une requête en cours ne peut pas être annulée seule. Les sessions du serveur lui-même n'apparaissent même pas dans la liste.

ClickHouse

Avec ClickHouse, il n'y a que Actifs >, qui annule avec KILL QUERY toute requête qui dure plus longtemps : il n'y a pas de connexions inactives à fermer. Dans le Tableau de bord, Connexions par utilisateur dit que rien ne tourne quand il n'y a pas de requêtes.

Oracle

Avec Oracle, les deux sont là : Inactifs > ferme des sessions avec ALTER SYSTEM KILL SESSION et Actifs > annule des instructions avec ALTER SYSTEM CANCEL SQL, en laissant la session ouverte. La connexion de Calíope qui lit la liste n’est jamais incluse, et sans le privilège ALTER SYSTEM les deux boutons Arrêter sont grisés.

Mots-clés : idle, busy, masse, tuer en masse, sleep, seuil, threshold