Questa pagina descrive Calíope 1.7, la versione che sto costruendo adesso. La 1.6 è sull'App Store per Mac, iPad, iPhone, Apple Watch, Apple TV e Apple Vision Pro. Il changelog dice in quale versione è arrivata ogni funzione.
Aggiunge a ogni argomento un pulsante «Apri in Calíope». Funziona solo con l'app installata.
Apri Processi dalla barra di navigazione del workspace. La tabella mostra tutti i processi con le colonne: ID, Utente, Host, Database, Comando, Tempo, Stato e SQL.
L'elenco si aggiorna da solo da quando si apre, ogni tanti secondi quanti ne indica Intervallo, e il piè di pagina conta quanto manca al prossimo aggiornamento. ⏸ lo mette in pausa, ▶ lo riprende e ↻ lo rilegge subito. Usa il filtro utente per mostrare solo i processi di un utente specifico. Nella tabella, fai clic o tocca l'intestazione di una colonna per ordinare in base a essa. Su iPhone ogni processo appare su tre righe, senza colonne.
SQL Server
Con SQL Server il menu non ha Kill Query e la barra non offre di Terminare quelle in esecuzione: lì KILL chiude l'intera sessione, non solo la sua query, quindi si può terminare solo la sessione.
ClickHouse
Con ClickHouse ogni riga è una query in corso, non una connessione: l'identificativo è il suo query_id, e ci sono due colonne che solo questo motore ha, Memoria e Righe lette. Sotto l'elenco, solo se ce n'è qualcuna, compare la sezione delle mutazioni non concluse: per ogni UPDATE o DELETE accodato, la tabella, il suo identificativo, il comando, le parti che mancano e, se fallisce, il motivo; una modifica accodata può fallire senza che nessuno lo veda, e qui si vede. Il suo pulsante ⓧ, Annulla la mutazione, chiede conferma e invia KILL MUTATION; ciò che è già stato riscritto resta.
Oracle
Con Oracle ogni riga è una sessione utente di V$SESSION, e l’identificativo è SID,SERIAL#: il solo SID si ripete quando una sessione si chiude e se ne apre un’altra. Stato indica l’attesa in corso e, se c’è, quale sessione la blocca; SQL è l’istruzione in esecuzione o, per una sessione inattiva, l’ultima che ha inviato. La connessione di Calíope che legge l’elenco porta l’icona del portatile. Vedere l’elenco richiede un permesso su V$SESSION (SELECT_CATALOG_ROLE): senza, una barra sotto l’elenco riporta il motivo del server invece di mostrarlo vuoto, e nella Dashboard Connessioni per utente dice lo stesso.
Parole chiave: processi, thread, processlist, SHOW PROCESSLIST, attivi
Dove si trova: Lista dei processi › clic destro › Kill Connection / Kill Query
Apri il menu contestuale di un processo nella lista — clic destro su macOS, tocca e tieni premuto su iPad — e seleziona Kill Connection (termina l'intera connessione) o Kill Query (annulla solo la query attiva). Entrambe le azioni mostrano una conferma prima di essere eseguite.
Se il server rifiuta — quasi sempre perché il thread è di un altro utente e al tuo account manca il privilegio —, una barra sotto l'elenco lo dice: «Il thread n. … non è stato terminato:» seguito dal motivo del server. Viene annunciata e si chiude con la sua ✕. Un thread che termina davvero non dice nulla: esce semplicemente dall'elenco.
SQL Server
Con SQL Server il menu ha solo Kill Connection: KILL termina l'intera sessione e annulla la sua transazione aperta, e il client che eseguiva la query riceve la risposta del server che la sessione è in fase di terminazione.
ClickHouse
Con ClickHouse il menu ha solo Kill Query: ogni riga è una query, non c'è una connessione da chiudere a parte, e la query esce dall'elenco quando finisce.
Oracle
Con Oracle, Kill Connection è ALTER SYSTEM KILL SESSION … IMMEDIATE: la sessione termina subito, la sua transazione aperta viene annullata e il suo client perde la connessione (sqlplus riporta ORA-03113). Kill Query è ALTER SYSTEM CANCEL SQL: l’istruzione riceve ORA-01013 e la sessione resta aperta. Entrambe richiedono il privilegio ALTER SYSTEM: senza, sono disattivate, e una barra sotto l’elenco lo dice. La connessione di Calíope che legge l’elenco non viene proposta per la chiusura.
Apple Vision Pro: il menu contestuale si apre guardando la riga e pizzicando senza lasciare.
Con un’etichetta di ambiente che conferma le scritture, la conferma di terminare porta il suo nome nel titolo e non chiede due volte; con una di sola lettura, i pulsanti e il menu per terminare non appaiono.
Parole chiave: kill, terminare, annullare, terminare processo, thread
Termina in massa i thread che stanno da più di N secondi in uno stato.
Dove si trova: Lista dei processi › Inattivi > / Attivi > · Termina
Accanto a Inattivi > e Attivi > nella barra degli strumenti, scrivi un numero di secondi e premi il pulsante Termina di quel campo. Inattivi chiude ogni connessione in attesa da più tempo; Attivi annulla ogni query in esecuzione da più tempo, e lascia aperta la sua connessione. Prima di agire, Calíope dice quanti thread ha trovato e chiede di confermare.
Dopo, la stessa barra sotto l'elenco lo riassume: quanti di quelli trovati sono stati terminati e, se il server ne ha rifiutato qualcuno, quanti e il motivo del primo — per esempio «Terminati 3 su 5; 2 rifiutati: …».
MySQLMariaDBAurora
I thread del server stesso — la replica e lo scheduler degli eventi — non sono mai inclusi.
PostgreSQL
I processi del server stesso — il checkpointer, lo scrittore del WAL, il launcher dell'autovacuum — compaiono nella lista, ma non sono mai inclusi.
SQL Server
Con SQL Server c'è solo Inattivi >: KILL chiude l'intera sessione, quindi una query in corso non si può annullare da sola. Le sessioni del server stesso non compaiono nemmeno nella lista.
ClickHouse
Con ClickHouse c'è solo Attivi >, che annulla con KILL QUERY ogni query che duri di più: non ci sono connessioni inattive da chiudere. Nella Dashboard, Connessioni per utente dice che non gira nulla quando non ci sono query.
Oracle
Con Oracle ci sono entrambi: Inattivi > chiude le sessioni con ALTER SYSTEM KILL SESSION e Attivi > annulla le istruzioni con ALTER SYSTEM CANCEL SQL, lasciando aperta la sessione. La connessione di Calíope che legge l’elenco non viene mai inclusa, e senza il privilegio ALTER SYSTEM entrambi i pulsanti Termina sono disattivati.
Parole chiave: idle, busy, blocco, terminazione massiva, sleep, soglia