Questa pagina descrive Calíope 1.5, la versione che stiamo costruendo adesso. La 1.4 è finita ed è in revisione sull'App Store, e il negozio serve oggi la 1.3 sul Mac e la 1.2 su iPad. 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.
Scrivi la tua istruzione SQL nell'editor di testo. Premi Esegui (icona play) o usa la scorciatoia ⌘↩ per eseguire. Se c'è del testo selezionato, viene eseguita solo la selezione.
I risultati compaiono nella tabella in basso con righe e colonne. Il tempo di esecuzione e il numero di righe sono mostrati nella barra di stato.
Parole chiave: run, esegui, query, interrogazione, risultati
Interrompe con KILL QUERY l'istruzione che sta impiegando troppo, senza chiudere la connessione.
Dove si trova: Editor SQL › Arresta
Il pulsante Arresta compare nella barra dell'Editor SQL mentre è in corso un'esecuzione, accanto a Esegui. Su macOS risponde anche alla scorciatoia ⌘. (Comando + punto).
Che cosa fa esattamente. MySQL e MariaDB non consentono di interrompere una query dalla stessa connessione che la sta attendendo, quindi Calíope ne apre un'altra e invia KILL QUERY <id> alla sessione che la esegue. È la stessa operazione offerta dallo strumento Processi, puntata automaticamente sulla propria query.
- Si usa KILL QUERY e non KILL CONNECTION: l'istruzione viene interrotta e la connessione resta viva, quindi non serve riconnettersi, la transazione aperta non va persa e le tabelle temporanee della sessione non scompaiono.
- In uno script con più istruzioni viene arrestata quella in corso e le rimanenti non vengono inviate.
- Non servono privilegi particolari: ogni utente può arrestare le proprie query.
- Al termine la barra di stato indica Query arrestata. L'errore Query execution was interrupted restituito dal server non viene presentato come guasto: è la risposta prevista.
Limiti. È il server a decidere quando può accogliere la richiesta: una SELECT lunga si interrompe quasi subito, ma un'operazione già entrata nel motore di archiviazione —un ALTER TABLE che sta ricopiando la tabella, un rollback in corso— può tardare a cedere, o non cedere affatto. In quel caso l'istruzione resta viva sul server anche se l'app non l'attende più: lo strumento Processi lo mostra.
Cancella il contenuto dell'editor e la tabella dei risultati.
Dove si trova: Editor SQL › Svuota
Premi il pulsante Svuota nella barra degli strumenti dell'Editor SQL per cancellare sia il testo dell'editor sia i risultati mostrati. La cronologia delle query non viene toccata.
Parole chiave: clear, cancella, svuota editor, vuota
Applica indentazione e formattazione leggibile all'SQL dell'editor.
Dove si trova: Editor SQL › Beautify (⌘L)
Il pulsante Beautify (o la scorciatoia ⌘L) riformatta l'SQL dell'editor con le parole chiave in maiuscolo, l'indentazione corretta e le interruzioni di riga nelle clausole. È utile per leggere script compatti o generati automaticamente.
Parole chiave: format, formatta, beautify, pretty print, indenta
Perché compare l'avviso «Correggi» sotto l'editor e che cosa fa.
Dove si trova: Workspace › Strumenti › Editor SQL
SQL capisce solo le virgolette dritte: ' per le stringhe e " per gli identificatori in alcune modalità. Le virgolette tipografiche —‘ ’ “ ” « » „ “— sono caratteri diversi, e il server rifiuta l'istruzione con un errore di sintassi anche se sullo schermo sembra corretta: in un carattere monospaziato ' e ‘ si distinguono a stento.
Calíope non le scrive mai. Arrivano incollando SQL da Note, dalla posta o da una chat, che sostituiscono le virgolette mentre scrivi. Nell'app la sostituzione è disattivata in tutti gli editor, quindi quello che digiti qui esce sempre dritto.
Quando l'editor trova una di queste virgolette dove SQL si aspetta un delimitatore, compare un avviso con il pulsante «Correggi». Cambia solo quelle che non possono essere altro: una virgoletta curva dentro una stringa è un carattere valido del dato —come in 'd’Artagnan'— e non si tocca. Se non è chiaro quale sia di troppo, non viene cambiato nulla e l'avviso non compare.
Parole chiave: virgolette, tipografiche, curve, dritte, apostrofo, errore di sintassi, 1064, incolla, correggi
Blocca le istruzioni distruttive per evitare errori. Attiva per impostazione predefinita.
Dove si trova: Editor SQL › Modalità sicura
La Modalità sicura è attivata per impostazione predefinita su macOS, iPad e iPhone. Quando è attiva, Calíope intercetta le istruzioni ALTER, DROP, DELETE, UPDATE e TRUNCATE e mostra un avviso di conferma prima di eseguirle.
Usa l'interruttore Modalità sicura (icona del lucchetto) nella barra degli strumenti dell'Editor SQL per attivarla o disattivarla. Lo stato viene mantenuto per profilo di connessione tra le sessioni.
Utile per lavorare in produzione o per chi sta imparando SQL e vuole protezione dalle modifiche accidentali.
Parole chiave: safe mode, sicura, blocca, proteggi, drop, delete, predefinito
Gestisci BEGIN, COMMIT e ROLLBACK dal menu a discesa delle transazioni.
Dove si trova: Editor SQL › Menu Transazioni
Il menu a discesa Transazioni nella barra degli strumenti dell'Editor SQL raggruppa le tre operazioni di controllo: BEGIN (avvia la transazione), COMMIT (conferma le modifiche) e ROLLBACK (annulla le modifiche).
COMMIT e ROLLBACK mostrano una finestra di conferma prima di essere eseguiti per evitare modifiche accidentali. Mentre una transazione è attiva, la barra dei risultati mostra l'etichetta Transazione attiva in verde.
MySQL e MariaDB richiedono che il motore della tabella sia InnoDB per il supporto completo delle transazioni.
Parole chiave: transazione, transaction, commit, rollback, begin, InnoDB, menu a discesa
Il pulsante Cronologia (icona dell'orologio) apre un pannello con le query già eseguite: ogni riga porta un segno verde o rosso a seconda di come è finita, il tempo impiegato e quando è avvenuta. Puoi cercare tra di esse e ricaricarne una nell'editor con il pulsante Usa.
Viene registrata una voce per esecuzione, non per istruzione: se lanci un lotto di dodici istruzioni con Esegui script, la cronologia conserva il testo completo come una sola voce. Per vederlo istruzione per istruzione c'è il pulsante Istruzioni.
Il pannello elenca solo la cronologia della scheda attiva, e Svuota cancella soltanto quella di quella scheda. I pulsanti ▲ / ▼ accanto, invece, percorrono l'intera cronologia.
La cronologia si conserva tra le sessioni per profilo di connessione (massimo 500 voci per profilo), nella chiave UserDefaults caliope_query_history_<id del profilo>. Ciò che non si conserva è il testo di un'esecuzione oltre i 32 KB: quella voce si vede per il resto della sessione e non arriva al disco, perché salvarne metà lascerebbe nella cronologia un SQL troncato che si può rieseguire.
Parole chiave: cronologia, history, query precedenti, recenti
Visualizza il piano di esecuzione di una query SELECT.
Dove si trova: Editor SQL › Visual EXPLAIN
Con un'istruzione SELECT nell'editor, premi il pulsante Visual EXPLAIN. Calíope esegue EXPLAIN FORMAT=JSON (sintassi MySQL/MariaDB) e apre il risultato nel tab Visual EXPLAIN, che mostra l'albero dei nodi del piano con colori per tipo di accesso.
Parole chiave: explain, piano, ottimizzatore, indice, full scan
Scegli il carattere che separa più istruzioni prima di eseguirle.
Dove si trova: Editor SQL › Selettore Delim
Il selettore Delim nella barra dei risultati controlla come Calíope divide il testo dell'editor in singole istruzioni prima di eseguirle. Ci sono tre opzioni predefinite:
- ; (punto e virgola) — separatore standard di MySQL. Adatto alla maggior parte delle query.
- | (pipe) — alternativa utile quando l'SQL contiene punto e virgola all'interno di stringhe letterali.
- $$ — convenzione abituale per scrivere stored procedure, funzioni e trigger, il cui corpo contiene ; internamente. Con questo delimitatore puoi scrivere blocchi CREATE PROCEDURE … BEGIN … END$$ e Calíope eseguirà ogni blocco come un'unica istruzione.
Su macOS puoi anche inserire un delimitatore personalizzato nel campo di testo che appare accanto ai pulsanti preimpostati.
Il delimitatore attivo viene usato anche come separatore di campi quando esporti i risultati in formato CSV.
Il pannello Istruzioni divide in base a questo stesso delimitatore, quindi il suo elenco corrisponde a ciò che verrà eseguito. Se lo lasci vuoto, elenco ed esecuzione ricadono su ;.
Parole chiave: delimitatore, delimiter, $$, pipe, punto e virgola, stored procedure, split, separatore, CSV
Premi il pulsante Salva risultato (icona del floppy) nella barra dei risultati. Scegli il formato di output — Tabella (testo), JSON, CSV, HTML o XML — e seleziona dove salvare il file con la finestra di salvataggio del sistema.
Il nome del file viene precompilato con la data e l'ora di esportazione.
Parole chiave: esporta, salva, csv, json, html, xml, file
Genera istruzioni INSERT per la tabella o il risultato corrente.
Dove si trova: Editor SQL › Menu INSERT
Il menu a discesa INSERT nella barra degli strumenti offre due opzioni: Esporta risultato come INSERT (converte le righe del risultato corrente) ed Esporta tabella come INSERT (selezioni la tabella da una finestra ed esporta tutti i suoi dati).
Il risultato viene aggiunto all'editor SQL come testo pronto da copiare o eseguire.
Parole chiave: insert, esporta dati, scarico, dump, seed
Cambia come vengono presentati i risultati della query.
Dove si trova: Editor SQL › Selettore formato
Il selettore Formato nella barra dei risultati permette di scegliere tra: Tabella (vista a griglia interattiva), JSON (risultato come array di oggetti), CSV (separato dal delimitatore attivo in Delim), Testo (colonne allineate), HTML (tabella HTML) e XML (tag per campo).
Il formato selezionato viene usato anche quando esporti il risultato su file.
Parole chiave: formato, tabella, json, csv, html, xml, output
Accumula i risultati di più esecuzioni senza cancellare i precedenti.
Dove si trova: Editor SQL › Concatena
Attiva l'interruttore Concatena nella barra dei risultati. Con questa opzione attiva, ogni esecuzione aggiunge le sue righe a quelle già mostrate invece di sostituirle. Utile per combinare risultati di query simili su condizioni diverse.
Parole chiave: concatena, accumula, combina, append, risultati multipli
Attiva l'interruttore Ripeti e inserisci l'intervallo in secondi. Calíope eseguirà la query automaticamente in loop con quell'intervallo. Utile per monitorare il risultato di query di stato o di conteggio in tempo reale.
Disattiva l'interruttore per fermare la ripetizione.
Parole chiave: polling, ripeti, auto-refresh, intervallo, monitora
Esegue ogni query simultaneamente su due server e confronta i risultati.
Dove si trova: Editor SQL › Collega DB
Il pulsante Collega DB (icona a catena con +) nella barra degli strumenti dell'Editor SQL connette un secondo server MySQL/MariaDB al tab attivo.
Come collegare:
1. Premi Collega DB. Appare un selettore con i tuoi profili di connessione recenti.
2. Scegli il profilo del secondo server e premi Connetti.
3. Quando la connessione è stabilita, il pulsante viene sostituito da un badge verde con il nome del profilo e un pulsante ✕.
Cosa succede eseguendo con un DB collegato:
Ogni volta che premi Esegui o Esegui script, Calíope lancia la stessa query su entrambi i server in parallelo (senza blocco tra loro). Al posto della consueta tabella dei risultati, appare la vista di confronto (vedi argomento: Confrontare i risultati tra due server).
Scollegare il DB collegato:
Premi il pulsante ✕ del badge verde. La connessione secondaria si chiude, la vista di confronto scompare e l'editor torna alla modalità normale con i risultati del server principale.
Disponibile su macOS, iPad e iPhone.
Parole chiave: collega, link db, secondo server, connessione secondaria, parallelo, confronta, due server
Vista di confronto affiancata con evidenziazione delle differenze per cella.
Dove si trova: Editor SQL › Collega DB
Quando c'è un DB collegato (vedi Collega DB), ogni esecuzione mostra la vista di confronto al posto della tabella normale.
Barra di riepilogo (parte superiore):
- Indicatore blu — nome del server principale, numero di righe e tempo di esecuzione.
- Indicatore arancione — nome del server secondario, numero di righe e tempo.
- Badge del risultato:
- ✓ Identici (verde) — entrambi i risultati sono esattamente uguali.
- ⚠ N valore/i · M riga/righe extra (arancione) — ci sono differenze.
- Toggle "Solo diff" — nasconde le righe identiche per concentrarti solo sulle differenze. Disattivato quando i risultati sono identici.
Come leggere la tabella di confronto:
La tabella aggiunge una colonna DB a sinistra delle colonne di dati:
Indicatore
Significato
=
Riga identica in entrambi i server (una sola riga)
P
Riga del server principale che differisce dal secondario
S
Riga del server secondario che differisce dal principale
Quando una riga differisce, vengono mostrate due righe consecutive (P e S). Le celle esatte in cui c'è una differenza vengono evidenziate:
- Rosso tenue → valore nel server principale che è cambiato.
- Verde tenue → valore nel server secondario che è cambiato.
Le righe che esistono solo in un server (differenza di conteggio) appaiono con sfondo blu (solo nel principale) o arancione (solo nel secondario).
Stati speciali:
- Errore in uno o entrambi i server — viene mostrato il messaggio di errore di ciascun server separatamente.
- Query DML (senza colonne) — mostra le righe interessate di ciascun server e se coincidono.
- Colonne non corrispondenti — mostra l'elenco delle colonne di ciascun server con le colonne extra evidenziate in arancione.
Disponibile su macOS, iPad e iPhone.
Parole chiave: confronta, differenze, diff, due server, parallelo, evidenziazione, identico, confronta risultati, solo diff, badge, P S, riga extra
Inserisci snippet di codice salvati direttamente nell'editor.
Dove si trova: Editor SQL › Snippet
Premi il pulsante Snippet (icona a stella) nella barra degli strumenti dell'Editor SQL. Si apre un pannello con l'elenco dei tuoi snippet salvati: selezionane uno e premi Inserisci per aggiungerlo alla posizione corrente del cursore nell'editor.
Parole chiave: snippet, frammento, modello, inserisci, codice
Visualizza il contenuto completo delle celle con testo lungo senza espandere la riga.
Dove si trova: Editor SQL › clic destro › Vedi valore completo
Le celle della tabella dei risultati mostrano il testo troncato su una sola riga per mantenere le righe compatte. Per leggere il valore completo senza dover ridimensionare le colonne:
macOS: Fai clic su una cella qualsiasi. Appare un popover ancorato alla cella con il valore completo, selezionabile e con un pulsante Copia in basso. Il popover è scorrevole se il contenuto è molto lungo.
iPad: Tocca una cella qualsiasi. Si apre un pannello con il valore completo, selezionabile per copiarne una parte. Il pannello ha anche un pulsante Copia nella barra superiore per copiare tutto il contenuto.
Su tutte e tre il popover o il pannello mostra il nome della colonna nell'intestazione e, per i valori lunghi (più di 50 caratteri), indica il numero totale di caratteri.
Le celle con valore NULL non aprono il visualizzatore quando le premi.
Parole chiave: cella, valore completo, testo lungo, popover, pannello, clic, tap, troncato, leggere
Modifica i valori delle celle con un editor dedicato a testo lungo, JSON e binario.
Dove si trova: Editor SQL › clic destro › Modifica valore avanzata…
Fai clic destro (macOS) o tieni premuta (iPad) una qualsiasi cella del risultato e scegli Modifica valore avanzata… per aprirla nell'Editor avanzato di celle. L'editor ha tab per: testo semplice, JSON (con pulsante di formattazione) e dati binari/hex.
Usa il pulsante OK per copiare il valore modificato negli appunti, o Carica nell'editor se la cella contiene SQL.
Parole chiave: cella, modifica, json, blob, testo lungo, menu contestuale
Modifica il valore di una cella e visualizza l'anteprima dell'UPDATE prima di eseguirlo.
Dove si trova: Editor SQL › clic destro › Genera UPDATE…
Calíope può generare ed eseguire un UPDATE direttamente da qualsiasi cella del risultato.
macOS: Fai doppio clic su una cella, oppure usa il clic destro › Genera UPDATE… iPad: Fai doppio tap su una cella, oppure tieni premuta la cella e scegli Genera UPDATE… nel menu contestuale.
Si apre un pannello con i seguenti campi:
- Nuovo valore — scrivi il valore sostitutivo. Attiva il toggle NULL per assegnare NULL.
- Tabella — rilevata automaticamente dal FROM della tua query. Modificala se necessario (appare ⚠ se non è stata rilevata).
- Colonna WHERE — la colonna che funge da chiave primaria nella clausola WHERE. Calíope dà priorità alle colonne chiamate id, poi a quelle che terminano con _id e infine alla prima colonna.
- Valore WHERE — mostra il valore attuale di quella colonna nella riga. Se è NULL, viene mostrato un avviso in arancione perché il WHERE interesserà tutte le righe con quella condizione.
L'SQL generato è modificabile — puoi modificarlo prima di eseguire.
Premi Esegui UPDATE (macOS) o Esegui (iPad) per lanciare l'istruzione. In caso di successo, il risultato mostra le righe interessate e il tempo, e la query originale viene rieseguita automaticamente.
Parole chiave: update, modifica cella, inline edit, genera sql, anteprima, where, pk, chiave primaria, modifica riga
Genera ed esegue un DELETE per la riga selezionata con anteprima e modifica dell'SQL.
Dove si trova: Editor SQL › clic destro › Elimina riga…
Calíope può generare un DELETE per qualsiasi riga visibile nella tabella dei risultati.
macOS: Fai clic destro su una qualsiasi cella della riga e scegli Elimina riga… iPad: Tieni premuta una qualsiasi cella della riga e scegli Elimina riga… nel menu contestuale.
Si apre un pannello con i seguenti campi:
- Tabella — rilevata automaticamente dal FROM della tua query. Se il nome è errato (ad esempio se usi JOIN o alias), scrivilo manualmente nel formato database.tabella.
- Clausola WHERE — scegli la colonna che funge da chiave primaria. Calíope dà priorità alle colonne chiamate id, poi a quelle che terminano con _id. Scegli "Usa tutte le colonne" se preferisci identificare la riga in base a tutti i suoi valori.
- SQL generato — anteprima modificabile del DELETE. Usa il pulsante Copia SQL per copiarlo negli appunti senza eseguirlo.
DELETE FROM `mi_base`.`usuarios`
WHERE `id` = '42';
Premi Elimina riga per eseguire. La query originale viene rieseguita automaticamente per aggiornare la tabella. Se si verifica un errore, il pannello resta aperto e mostra il messaggio di errore del server.
> Attenzione: La Modalità sicura non intercetta questo DELETE perché viene eseguito internamente, non dall'editor. Verifica sempre il WHERE prima di confermare.
Parole chiave: delete, elimina riga, cancella riga, delete row, menu contestuale, risultati, tabella, where, copia sql, correggi tabella
Consulta la documentazione delle funzioni del motore a cui sei connesso senza uscire dall'editor.
Dove si trova: Editor SQL › Editor di testo
Calíope mostra documentazione integrata per le funzioni SQL del motore della sessione: con MySQL, MariaDB e Aurora quelle di quella famiglia (SUM, DATE_FORMAT, JSON_EXTRACT, COALESCE, ecc.); con PostgreSQL le sue (string_agg, to_char, jsonb_set, date_trunc, ecc.). Un nome presente in entrambi non condivide la scheda, perché non significa sempre la stessa cosa: LENGTH conta caratteri in PostgreSQL e byte in MySQL. Se passando sopra una funzione non appare nulla, è perché quella funzione non esiste nel motore a cui sei connesso.
macOS: Passa il cursore sul nome di una qualsiasi funzione riconosciuta nell'editor. Dopo una breve pausa appare un popover con la sintassi, il tipo di ritorno, la descrizione, i parametri con i loro tipi e un esempio d'uso.
iPad: Quando il cursore è posizionato all'interno o subito dopo il nome di una funzione riconosciuta, appare automaticamente una barra di contesto sotto la barra degli strumenti dell'editor che mostra il nome e la sintassi. Premi il pulsante ? nella barra per aprire la documentazione completa in un pannello.
La documentazione include:
- Sintassi completa della funzione
- Tipo di ritorno
- Descrizione del comportamento
- Parametri con nome, tipo e se sono opzionali
- Esempio d'uso quando disponibile
Analizza lo script dell'editor e gestisci le sue istruzioni singolarmente.
Dove si trova: Editor SQL › Istruzioni SQL
Il pulsante Istruzioni (icona a elenco) apre il Gestore delle istruzioni SQL, che divide il contenuto dell'editor per punto e virgola e mostra ogni istruzione numerata, con il suo tipo (SELECT, INSERT, UPDATE, ecc.) e un'icona colorata. Dal gestore puoi copiare singole istruzioni, caricarle nell'editor, rimuoverle dall'elenco o cercarle.
È una vista del testo che hai adesso nell'editor e non esegue nulla: viene ricalcolata ogni volta che apri il pannello, e Rimuovi dalla lista toglie la riga dall'elenco, mai dall'editor. Qui sta la differenza con la Cronologia, che registra ciò che è già stato eseguito, con una voce per esecuzione.
Il gestore divide in base al delimitatore attivo della barra dei risultati, lo stesso che usa l'esecuzione: con ; divide sui punti e virgola, e se hai impostato $$ per scrivere un CREATE PROCEDURE, l'intero blocco viene elencato come una sola istruzione. Così ciò che elenca corrisponde a ciò che verrà eseguito.
Parole chiave: istruzioni, statements, split, gestisci, elenco di query
Esegue tutte le istruzioni dell'editor in una sola volta con ⌘⇧↩.
Dove si trova: Editor SQL › Esegui script (⌘⇧↩)
Usa la scorciatoia ⌘⇧↩ o il pulsante Esegui script (icona a doppio fulmine) nella barra degli strumenti dell'Editor SQL per eseguire tutte le istruzioni dell'editor in sequenza, indipendentemente dal fatto che ci sia del testo selezionato.
macOS: il pulsante appare accanto al pulsante Esegui principale nella barra degli strumenti. iPad: disponibile nella barra degli strumenti superiore dell'editor.
A differenza di Esegui (⌘↩), che lancia solo la selezione attiva o l'istruzione sotto il cursore, Esegui script elabora in ordine tutte le istruzioni separate dal delimitatore attivo e accumula i risultati.
Parole chiave: esegui script, run all, ⌘⇧Return, tutte le istruzioni, script completo, query multiple
I risultati arrivano a pagine: 50 righe sul Mac, 200 su iPad e iPhone.
Dove si trova: Editor SQL › Griglia dei risultati
Su macOS i risultati arrivano a pagine di 50 righe, con la loro barra in basso —precedente, successiva e indicatore di pagina—, che compare solo quando la query ne ha restituite più di 50. Puoi ordinare toccando un'intestazione, scegliere più righe con ⇧ o ⌘, copiarle con ⌘C —escono in TSV, con i nomi delle colonne in testa— e trascinarle fuori dall'app.
L'ordinamento è del client, e riguarda il risultato intero. Ordina le righe già scaricate —tutte, non solo la pagina che hai davanti— e le pagine si tagliano dopo. Non ordina la tabella sul server, e la griglia lo dice sotto finché c'è un ordinamento impostato. Se vuoi le prime dieci davvero, l'ordinamento va nella query: ORDER BY … LIMIT 10.
La selezione appartiene alla pagina. Cambiando pagina si svuota, così ⌘C e il trascinamento non portano via righe che non hai più davanti.
Su iPad e iPhone le pagine sono di 200 righe, con la stessa barra in basso.
In tutte e tre la divisione è locale: la query viene eseguita per intero e ripartita in memoria. Se ti serve esattamente un intervallo di righe, aggiungi LIMIT e OFFSET alla query.
Cerca e sostituisci testo nell'Editor SQL con la ricerca nativa del sistema.
Dove si trova: Editor SQL › Cerca (⌘F)
Premi il pulsante Cerca (icona a lente) nella barra degli strumenti dell'Editor SQL o usa la scorciatoia ⌘F (macOS) per aprire la ricerca integrata.
macOS: Si attiva la ricerca nativa di NSTextFinder con campo di ricerca e sostituzione, navigazione tra le corrispondenze con ↩ / ⇧↩, opzione per sostituire una o tutte le corrispondenze.
iPad: Si attiva UIFindInteraction del sistema, che presenta la barra di ricerca/sostituzione nativa di iOS sopra la tastiera, con supporto per la navigazione tattile tra le corrispondenze.
Parole chiave: cerca, sostituisci, find, replace, search, testo, ⌘F
Recupera le query precedenti direttamente dall'editor senza aprire il pannello della cronologia.
Dove si trova: Editor SQL › Frecce ‹ › della cronologia
L'editor SQL consente di richiamare le query precedenti direttamente dal campo di testo, proprio come nel terminale mysql.
macOS:
- Premi ↑ con il cursore all'inizio dell'editor (posizione 0, senza nulla selezionato) per caricare la query precedente della cronologia.
- Premi ↓ con il cursore sull'ultima riga per tornare verso il presente.
- Puoi anche usare i pulsanti ▲ / ▼ nella barra degli strumenti dell'editor.
iPad:
- Usa i pulsanti ▲ / ▼, oppure ⌘↑ / ⌘↓ con una tastiera fisica.
Navigando non si perde nulla. Entrando nella cronologia viene messo da parte ciò che c'era nell'editor, e con ↓ torna esattamente com'era — l'editor non resta vuoto. E se quello che hai è una bozza tua a metà, né i tasti né i pulsanti la toccano: ↑ e ↓ spostano il cursore come sempre.
Tasti e pulsanti condividono lo stesso percorso, quindi ▼ annulla esattamente ciò che ha fatto ↑. Percorrono la cronologia della scheda attiva, la stessa elencata dal pannello del pulsante Cronologia. Navigare la cronologia non la modifica.
Parole chiave: cronologia, REPL, freccia, navigare, su, giù, precedente, successivo, chevron
Salva il risultato corrente per consultarlo mentre esegui altre query.
Dove si trova: Editor SQL › Blocca risultato
Il pulsante Blocca (icona a spillo) nella barra dei risultati salva una copia del risultato corrente insieme all'SQL che lo ha generato e all'ora di esecuzione. Il risultato bloccato persiste anche se esegui altre query.
Quando ci sono risultati bloccati, appare il pulsante Bloccati (N) che alterna la visibilità del pannello dei risultati bloccati. Ogni risultato bloccato mostra:
- L'SQL riassunto che lo ha generato
- Il numero di righe e colonne
- L'ora di esecuzione
- Un pulsante ✕ per sbloccare quel singolo risultato
Disponibile su macOS, iPad e iPhone. Utile per confrontare lo stato di una tabella prima e dopo una modifica.
Parole chiave: bloccare, pin, risultati, confrontare, multipli, salvare risultato, prima e dopo
Pannello tipo terminale con prompt mysql> per eseguire SQL in modo interattivo.
Dove si trova: Editor SQL › Terminale
Il pulsante Terminale (icona del terminale) nella barra degli strumenti dell'Editor SQL apre un pannello inferiore in stile REPL.
Come usarlo:
- Scrivi SQL nel campo con prompt mysql> e premi ↩ (o il pulsante ↵) per eseguire.
- I risultati SELECT vengono mostrati come tabella ASCII con separatori +---+.
- Le istruzioni DML mostrano "Query OK, N riga/righe interessata/e".
- Gli errori vengono mostrati in rosso con il messaggio di MySQL.
Navigare la cronologia del terminale:
- macOS: usa ↑ / ↓ nel campo di input per scorrere le query precedenti del terminale.
- iPad: usa i pulsanti ‹ / › sopra il campo di input.
Svuotare: il pulsante del cestino nell'header cancella l'output del terminale.
Il terminale ha la propria cronologia indipendente dall'Editor SQL principale. Le query eseguite dal terminale vengono aggiunte anche alla cronologia globale della sessione.
Disponibile su macOS, iPad e iPhone.
Parole chiave: terminale, REPL, prompt, mysql, interattivo, console, ascii, tabella
Salva i risultati in JSON, Markdown, XML o Excel (.xlsx) oltre che in CSV.
Dove si trova: Editor SQL › Selettore di formato
Oltre ai formati classici (Tabella, CSV, HTML), il selettore Formato nella barra dei risultati include:
- JSON — array di oggetti, ideale per API e strumenti di sviluppo.
- Markdown — tabella in formato Markdown, pronta da incollare nella documentazione o in Notion.
- XML — un elemento per riga, compatibile con strumenti di elaborazione dati.
- Excel (.xlsx) — foglio di calcolo pronto da aprire in Numbers o Excel. Usa il pulsante Salva che appare nella barra dei risultati quando selezioni questo formato.
Il pulsante Salva / Condividi nella barra dei risultati esporta con il formato attivo selezionato nel picker.
Sostituisce l'asterisco di un SELECT con i nomi reali delle colonne della tabella.
Dove si trova: Editor SQL › clic destro › Espandi * → colonne
Quando hai un SELECT * FROM tabella nell'editor, Calíope può espandere quell'* nell'elenco esplicito delle colonne della tabella direttamente nell'editor.
Come usarlo (macOS):
1. Posiziona il cursore all'interno dell'istruzione SELECT che contiene l'*.
2. Fai clic destro nell'editor per aprire il menu contestuale.
3. Seleziona Espandi * → colonne di nome_tabella.
Calíope interroga il server per ottenere le colonne attuali della tabella e sostituisce l'* con l'elenco delle colonne tra backtick separate da virgole, ad esempio:
SELECT `id`, `nombre`, `email`, `created_at` FROM `usuarios`
Requisiti:
- Deve esserci un database attivo selezionato nel selettore della barra degli strumenti.
- L'opzione appare nel menu contestuale solo quando il cursore è all'interno di un'istruzione SELECT … FROM tabella valida.
- La tabella deve esistere nel database attivo e l'utente deve avere i permessi di lettura.
Disponibile solo su macOS. Sull'iPad e sull'iPhone l'espansione non è disponibile in questa versione.
Completa parole chiave SQL, nomi di tabelle e colonne. Il popup automatico durante la digitazione richiede l'attivazione di un'opzione nelle Preferenze.
Dove si trova: Calíope › Preferenze › Editor di testo
L'editor SQL offre due livelli di completamento automatico indipendenti.
1. Parole chiave SQL:
L'editor conosce tutte le parole chiave di MySQL/MariaDB (SELECT, FROM, WHERE, JOIN, GROUP BY, ecc.) e le include nel popup dei suggerimenti. Attiva o disattiva questo livello in Preferenze › Editor di testo › Completa parole chiave SQL.
2. Nomi di tabelle e colonne dello schema:
Calíope carica gli oggetti del database attivo (tabelle, colonne, alias) e li aggiunge ai suggerimenti. Non devi partire dall'inizio del nome: va bene qualsiasi sua parte, e quelli che iniziano con ciò che hai scritto vengono per primi.
---
Come si apre il popup:
- Manualmente:⌘N su macOS, e sull'iPad il pulsante Completamento della barra dell'editor — o ⌘N, se hai una tastiera fisica. Apre il popup in qualsiasi momento, indipendentemente da ciò che hai scritto. Il pulsante c'è finché il completamento automatico è attivo nelle Preferenze, che è lo stesso che governa la scorciatoia.
- Automaticamente durante la digitazione: il popup può apparire da solo dopo che smetti di digitare per un breve istante. Questa funzione è disattivata per impostazione predefinita. Per attivarla vai in Preferenze › Editor di testo e attiva l'interruttore "Completamento automatico in tempo reale". Una volta attivo, il popup appare circa 350 ms dopo l'ultima pressione di un tasto.
Se scrivi SEL, fai una pausa e non appare nulla, è perché il completamento automatico in tempo reale non è attivato. Usa ⌘N — o il pulsante della barra, sull'iPad — per aprirlo manualmente, o attiva l'opzione nelle Preferenze.
---
Popup di oggetti alla digitazione del punto:
Se scrivi il nome di un database tra backtick seguito da un punto (ad es. `mi_bd`. ), l'editor mostra automaticamente le tabelle di quel database per selezionarle direttamente. Se continui a scrivere, l'elenco si accorcia e lascia solo i nomi che contengono quello che hai scritto.
Disponibile su macOS, iPad e iPhone. Sull'iPad e sull'iPhone non serve una tastiera: il pulsante della barra apre il popup esattamente come ⌘N.
Parole chiave: completamento automatico, autocomplete, suggerimenti, keywords, tabelle, colonne, popup, completare, ⌘N, tempo reale, live, debounce, automatico
Comprimi o espandi blocchi di parentesi e blocchi BEGIN…END per semplificare la lettura di script complessi.
Dove si trova: Scorciatoia da tastiera: ⌃. / ⌃, — clic en el margen izquierdo
L'editor SQL di Calíope consente di piegare (comprimere) due tipi di blocchi:
1. Blocchi di parentesi (…)
Utile per sottoquery lunghe, clausole IN (…) o elenchi di colonne in CREATE TABLE. Il triangolo ▼ appare nel margine sinistro su qualsiasi riga che contenga un ( con interruzioni di riga interne.
2. Blocchi BEGIN…END
I corpi di procedure memorizzate, funzioni, trigger ed eventi MariaDB/MySQL usano BEGIN…END. Il triangolo ▼ appare nel margine sinistro sopra la riga che contiene BEGIN. Quando si piega, il blocco diventa BEGIN(…)END, lasciando visibile la firma dell'oggetto (CREATE PROCEDURE …, CREATE FUNCTION …, ecc.).
Blocchi supportati:
- CREATE PROCEDURE name() BEGIN … END
- CREATE FUNCTION name() RETURNS type BEGIN … END
- CREATE TRIGGER name … BEGIN … END
- CREATE EVENT name … DO BEGIN … END
- Blocchi BEGIN … END isolati (inizio di transazione)
I blocchi END IF, END LOOP, END CASE, END WHILE e simili non chiudono un BEGIN di routine e vengono ignorati correttamente.
Come piegare/espandere:
- Con il mouse / tocco: fai clic (macOS) o tocca (iPad) il triangolo ▼ nel margine sinistro della riga.
- Con la tastiera (macOS):
- ⌃. (Control + punto) — Piega il blocco (parentesi o BEGIN…END) che contiene il cursore.
- ⌃, (Control + virgola) — Espande il blocco piegato nella posizione del cursore.
Comportamento:
- La piegatura è solo visiva: il testo completo rimane nell'editor e viene inviato per intero al server durante l'esecuzione.
- Le pieghe si conservano finché il tab rimane aperto.
Disponibile su macOS, iPad e iPhone.
Parole chiave: piegare, espandere, parentesi, fold, comprimere, sottoquery, annidato, ⌃., ⌃, BEGIN, END, procedura, funzione memorizzata, trigger, routine, begin end, fold block
Indicatore nella sidebar che mostra CPU e RAM dell'app, con suggerimenti di pulizia quando l'uso è elevato.
Dove si trova: Pannello laterale › Monitor di prestazioni (parte inferiore della sidebar)
Il monitor di prestazioni appare nella parte inferiore della sidebar sinistra del workspace (sotto l'albero degli schemi). Mostra l'uso attuale di CPU e RAM dell'app Calíope.
Colori dell'indicatore:
- 🟢 Verde — Prestazioni normali (CPU < 30 %, RAM < 5 % della RAM totale del sistema)
- 🟡 Ambra — Uso elevato (CPU 30–70 % o RAM 5–10 % della RAM totale)
- 🔴 Rosso — Pressione alta (CPU > 70 % o RAM > 10 % della RAM totale; su iPad si attiva anche per un avviso del sistema operativo)
Cosa significa "Svuota risultati": scarta l'array di righe del risultato corrente di quel tab dell'Editor SQL, liberando la memoria che occupano. La query scritta nell'editor non viene cancellata; puoi rieseguirla in qualsiasi momento.
Quando intervenire: se il badge dell'indicatore appare in rosso, l'app può rispondere più lentamente. Premi o tocca l'indicatore per vedere il pannello di dettaglio — i suggerimenti mostrano esattamente quale tab sta occupando più memoria e offrono un pulsante di azione diretta.
Disponibile su macOS, iPad e iPhone.
Parole chiave: prestazioni, memoria, cpu, ram, lento, svuotare risultati, performance, monitor, pressione, uso elevato
Commenta o rimuovi il commento dalle righe selezionate con il prefisso '--'.
Dove si trova: Editor SQL › Commenta
Premi ⌘D (o il pulsante Commenta nella barra degli strumenti) per attivare/disattivare il commento SQL nelle righe selezionate.
Comportamento:
- Se c'è del testo selezionato, agisce su tutte le righe che la selezione comprende.
- Senza selezione, agisce sulla riga in cui si trova il cursore.
- Se tutte le righe non vuote iniziano già con --, le scommenta; altrimenti aggiunge -- all'inizio di ogni riga.
Scorciatoie:
- macOS:⌘D nell'editor o pulsante nella barra degli strumenti
- iPad:⌘D con Magic Keyboard o pulsante nella barra degli strumenti
Sottolinea gli errori lessicali nell'editor mentre scrivi, senza eseguire nulla sul database.
Dove si trova: Editor SQL › Barra dei risultati
Il linting pre-esecuzione analizza automaticamente il testo dell'editor (500 ms dopo che smetti di scrivere) e sottolinea con una linea tratteggiata rossa gli errori lessicali che MySQL/MariaDB rifiuterebbero sicuramente.
Errori rilevati:
Errore
Esempio
Stringa letterale non chiusa
WHERE nombre = 'juan
Identificatore con backtick non chiuso
SELECT `columna
Commento di blocco non chiuso
/* sin cierre
Parentesi di apertura senza chiusura
SIN(x + 1
Parentesi di chiusura senza apertura
SIN x + 1)
Come leggerlo:
- Il carattere problematico viene sottolineato con una linea tratteggiata rossa.
- Nella barra dei risultati appare un badge rosso con il numero di errori (ad es. ⚠ 2 error(es)). Passando il puntatore sul badge si vedono tutti i messaggi.
- Se non ci sono errori il badge scompare.
Limitazioni:
Il linter è puramente lessicale; non verifica che i nomi di tabelle o colonne esistano sul server, né controlla la semantica delle clausole SQL. Il suo scopo è intercettare gli errori più evidenti — stringhe non chiuse, parentesi sbilanciate — che spesso sono difficili da individuare in script lunghi.
Disponibile su macOS, iPad e iPhone.
Parole chiave: lint, linting, errore, diagnosi, sottolineare, prima di eseguire, parentesi, stringa, backtick, commento, pre-esecuzione
Controlla se le righe lunghe vanno a capo visivamente o consentono lo scorrimento orizzontale.
Dove si trova: Editor SQL › Preferenze → Editor
L'a capo automatico (word wrap) determina come vengono mostrate le righe dell'editor quando la loro lunghezza supera la larghezza visibile.
Attivato (per impostazione predefinita): le righe lunghe vanno a capo sulla riga visiva successiva senza inserire alcun carattere nel testo. È più comodo per leggere query complesse senza scorrimento orizzontale.
Disattivato: ogni riga occupa esattamente una riga. Appare una barra di scorrimento orizzontale ai piedi dell'editor che permette di vedere l'intera riga senza interruzione. Utile per script con allineamento tabulare (SELECT column1, column2, ...) o per esaminare codice generato automaticamente con righe molto lunghe.
Come modificarlo:
- macOS: menu Calíope → Preferenze → Editor → A capo automatico.
- iPad:Impostazioni dell'app → stessa opzione.
L'impostazione è condivisa tra macOS, iPad e iPhone tramite la chiave caliope_pref_word_wrap in UserDefaults.
Parole chiave: word wrap, a capo automatico, wrap, scorrimento orizzontale, righe lunghe, preferenze, configurazione, no wrap
Illumina la parentesi o la keyword di apertura/chiusura corrispondente al cursore.
Dove si trova: Editor SQL › Editor di testo
Quando il cursore è accanto a una parentesi o alle parole chiave BEGIN/END, l'editor evidenzia automaticamente il carattere o la keyword che lo accoppia.
Tipi di coppie supportati:
Apre
Chiude
Esempio SQL
(
)
sottoquery, chiamate di funzione
{
}
JSON inline
[
]
nomi con spazi [mi tabla]
BEGIN
END
procedure, funzioni, trigger, eventi
Codice colore:
- Giallo — entrambe le estremità sono state trovate correttamente.
- Rosso — la parentesi o la keyword non ha una coppia (sbilanciamento).
Comportamento:
- L'evidenziazione si aggiorna in tempo reale quando muovi il cursore o modifichi il testo.
- END IF, END LOOP, END CASE, END WHILE, END REPEAT ed END FOR vengono ignorati correttamente: si accoppiano solo gli END che chiudono un blocco BEGIN di routine.
- I blocchi BEGIN/END annidati vengono risolti con il conteggio della profondità (l'END corretto viene identificato anche con più livelli di annidamento).
Con un doppio clic su una parola l'editor illumina tutte le sue occorrenze nel testo.
Dove si trova: Editor SQL › Editor di testo
Fai doppio clic su una parola dell'editor —il nome di una tabella, una colonna, un alias, una parola chiave— e tutte le altre occorrenze vengono dipinte con uno sfondo turchese. Su iPad il gesto equivalente è il doppio tocco.
Come si decide che cosa evidenziare:
- Il confronto è sull'intera parola: selezionare id non illumina l'id contenuto in identificatore.
- Non distingue maiuscole e minuscole, perché per MySQL Id, id e ID sono la stessa colonna.
- La selezione deve essere esattamente una parola: se comprende spazi, virgole o parentesi, o se taglia una parola a metà, non viene evidenziato nulla.
- La parola deve avere almeno due caratteri.
- La parola selezionata non viene ridipinta: il colore di selezione la distingue già.
L'evidenziazione si spegne quando il cursore si sposta, quando si seleziona altro o quando si modifica il testo. Vengono illuminate al massimo 500 occorrenze; in uno script dove si raggiunge quel limite conviene usare Trova (⌘F), che permette anche di passare da una all'altra.
Modifica simultaneamente in più posizioni dell'editor.
Dove si trova: Editor SQL › Modifica a colonna
La modalità modifica a colonna mette cursori secondari su più righe e scrive o cancella in tutte insieme. È ciò che serve per rinominare un alias in cinque righe, o per aggiungere un prefisso o un suffisso a un blocco di righe.
Su macOS:
AppKit non ha un multi-cursore proprio, quindi lo disegna Calíope. Usa il pulsante Modifica a colonna della barra, oppure premi direttamente ⌥⌘↓, che accende la modalità e mette il secondo cursore in un colpo solo; il pulsante diventa viola finché è attiva. Da lì, ogni clic aggiunge un cursore, e ⌥⌘↓ / ⌥⌘↑ ne aggiungono uno sulla riga sotto o sopra senza toccare il mouse — la colonna si conserva e viene tagliata alla fine di una riga più corta. Esc esce dalla modalità. Qui ⌘⇧M non è la scorciatoia: su macOS apre già il selettore di frammenti.
Su iPad:
Premi ⌘⇧M con Magic Keyboard o il pulsante Modifica a colonna della barra. Con la modalità attiva, ogni tocco nell'editor accumula un cursore secondario.
In entrambe, un cursore secondario è una linea verticale blu con la sua riga evidenziata, e scrivere o cancellare funziona allo stesso modo: il carattere va prima al cursore primario, poi viene replicato nelle posizioni secondarie dall'indice più alto al più basso, così inserire in una non sposta quelle che restano.
Disponibile su macOS, iPad e iPhone.
Parole chiave: multi-cursore, modifica a colonna, cursori, ⌘⇧M, ⌥⌘↓, aggiungi cursore, simultaneo, colonna, multicursore
Naviga dall'editor direttamente alla definizione di una tabella, vista, routine o trigger nel catalogo.
Dove si trova: Editor SQL › clic destro › Vai alla definizione
Go to Definition risolve il nome di un identificatore sotto il cursore e apre il tab Cataloghi mostrando quell'oggetto selezionato.
Come attivarlo:
Piattaforma
Metodo
macOS
⌘ + clic sull'identificatore nell'editor
macOS
F12 con il cursore posizionato sull'identificatore
macOS
Clic destro › Vai alla definizione nel menu contestuale
iPad
Tieni premuto un qualsiasi identificatore → menu contestuale → Vai alla definizione
Oggetti riconosciuti:
- Tabelle → apre il tab Cataloghi e seleziona la tabella
- Viste → passa al tab Viste e seleziona la vista
- Procedure e funzioni → passa al tab Routine
- Trigger → passa al tab Trigger
Comportamento:
1. Calíope interroga gli oggetti del database attivo nel selettore.
2. Se l'identificatore corrisponde a un oggetto noto, apre (o attiva) il tab Cataloghi e seleziona l'oggetto automaticamente — incluso il caricamento del DDL nel pannello inferiore.
3. Se l'identificatore non esiste nello schema attivo, la barra di stato mostra "Oggetto non trovato nello schema" senza aprire il catalogo.
Requisito: deve esserci un database attivo selezionato nel selettore della barra degli strumenti.
Disponibile su macOS, iPad e iPhone.
Parole chiave: go to definition, vai alla definizione, navigare, tabella, vista, routine, catalogo, F12, cmd clic, long press, identificatore, schema
Mostra il DDL di tabelle, viste, routine e trigger semplicemente passando il cursore sul loro nome nell'editor.
Dove si trova: Editor SQL › Tooltip DDL
Hover tooltip DDL è il modo più rapido di ispezionare la definizione di un oggetto dello schema senza uscire dall'editor.
come funziona:
Piattaforma
Comportamento
macOS
Ferma il cursore sul nome di un qualsiasi oggetto dello schema per 0,4 s — appare un popover con il DDL completo
iPad
Sposta il cursore di testo (tocca) su un identificatore dello schema — appare la barra DDL sotto la barra degli strumenti
Senza puntatore (macOS):Naviga › Scheda della funzione al cursore (⌃⌘?) apre la scheda di ciò che si trova al cursore di testo — lo stesso popover dell'hover, inclusa una funzione appena digitata (DATE_FORMAT(). Se lì non c'è nulla da documentare, si sente un bip.
Contenuto del popover / barra DDL:
- Icona e badge di tipo (TABELLA, VISTA, PROCEDURA, FUNZIONE, TRIGGER, EVENTO)
- DDL completo in font monospaziato, con selezione del testo abilitata
- Pulsante "Vai alla definizione" → naviga all'oggetto nel tab Cataloghi
Oggetti riconosciuti:
Tabelle · Viste · Procedure memorizzate · Funzioni · Trigger · Eventi
Coesistenza con l'aiuto delle funzioni native:
- Se l'identificatore è una funzione SQL nativa seguita da ( (es. DATE_FORMAT(), viene mostrata la documentazione della funzione, non il DDL.
- Se l'identificatore è un oggetto dello schema senza ( a seguire, viene mostrato il tooltip DDL.
- I due sistemi non si attivano contemporaneamente.
Cache: il DDL di ogni oggetto viene memorizzato in memoria durante la sessione per evitare query ripetute.
Requisito: deve esserci un database attivo selezionato nel selettore della barra degli strumenti.
Disponibile su macOS, iPad e iPhone.
Parole chiave: ddl, hover, tooltip, popover, create table, show create, definizione, tabella, vista, procedura, funzione, trigger, evento, ispezione, schema, hint bar
Palette di ricerca per saltare a qualsiasi oggetto dello schema attivo digitando parte del suo nome.
Dove si trova: Editor SQL › Quick Open
Quick Open è una palette di ricerca istantanea che ti permette di navigare a qualsiasi tabella, vista, procedura, funzione, trigger o evento senza abbandonare l'editor né percorrere l'albero dei Cataloghi.
Come aprirlo:
Piattaforma
Metodo
macOS
⌘⇧O (menu Naviga › Quick Open…)
iPad
⌘⇧O (tastiera Magic Keyboard) o pulsante Quick Open nella barra degli strumenti dell'editor
Come usarlo:
1. Si apre un pannello con un campo di ricerca.
2. Scrivi una qualsiasi parte del nome dell'oggetto — l'elenco si filtra in tempo reale.
3. Seleziona il risultato con i tasti ↑↓ e conferma con ↵, oppure fai clic direttamente sull'elemento.
4. Calíope naviga automaticamente all'oggetto nel tab Cataloghi.
5. Premi Esc in qualsiasi momento per chiudere senza navigare.
Algoritmo di ricerca (fuzzy matching su tre livelli):
- Il nome inizia con il testo scritto → priorità maggiore
- Il nome contiene il testo in qualsiasi posizione → priorità media
- I caratteri scritti appaiono in ordine come sottosequenza (es. cru trova crear_usuario) → priorità minore
I risultati corrispondenti vengono evidenziati nel colore di accento dell'app.
Oggetti riconosciuti: tabelle · viste · procedure · funzioni · trigger · eventi
Ambito: cerca unicamente nel database attivo del selettore della barra degli strumenti.
Rinomina un alias, una CTE o una variabile e propaga la modifica a tutti i suoi riferimenti nello script attivo.
Dove si trova: Editor SQL › clic destro › Rinomina simbolo
Rinomina simbolo permette di cambiare il nome di qualsiasi identificatore locale dello script — alias di colonna, nome di CTE, variabile — e sostituire automaticamente tutte le sue occorrenze nello stesso file in una sola operazione.
Tieni premuto l'identificatore → menu contestuale → Rinomina simbolo…
Scrivi il nuovo nome nella finestra di dialogo che appare e conferma con Rinomina (o premi ↵). Tutte le occorrenze vengono sostituite in un solo passaggio.
Annulla: l'intera operazione si annulla con un solo ⌘Z (macOS) o scuotendo il dispositivo / pulsante annulla (iPad). Non è necessario annullare occorrenza per occorrenza.
Ambito: solo lo script aperto nel tab attivo. Non modifica alcun oggetto nel database.
Corrispondenza: usa i limiti di parola intera, quindi rinominare id non tocca client_id né user_id.
Nota: la sostituzione è sensibile alle maiuscole e si applica sull'intero testo dello script, inclusi i commenti e i letterali di stringa se l'identificatore vi appare.
Disponibile su macOS, iPad e iPhone.
Parole chiave: rinominare, rename, simbolo, alias, cte, variabile, refactoring, sostituire, identificatore, script, parola intera, menu contestuale
Costruisci query SELECT visivamente trascinando tabelle, scegliendo colonne e lasciando che Calíope generi i JOIN automaticamente.
Dove si trova: Workspace › Query Builder
Query Builder è un tab del workspace che ti permette di costruire query SELECT in modo visivo, senza scrivere SQL manualmente.
Come aprirlo?
- macOS / iPad: tab Query Builder nella barra di navigazione del workspace (icona di rettangoli raggruppati).
Flusso di lavoro
1. Il pannello sinistro mostra tutte le tabelle del database attivo.
2. Premi + accanto a una tabella (o trascinala sul canvas su macOS) per aggiungerla.
3. Ogni tabella appare come una scheda con checkbox per colonna. Le colonne sono tutte selezionate per impostazione predefinita; deseleziona quelle che non ti servono.
4. Calíope rileva automaticamente le chiavi esterne tra le tabelle del canvas e genera il JOIN corrispondente.
5. Se non esiste una FK tra due tabelle, viene inserito un CROSS JOIN con un commento di avviso.
6. Il pannello inferiore mostra l'SQL generato in tempo reale.
7. Premi Inserisci nell'editor per aprire l'SQL in un nuovo tab dell'editor.
Opzioni del canvas
Controllo
Descrizione
Tipo di JOIN
Passa tra INNER, LEFT e RIGHT per tutti i JOIN del canvas
Alias
Tocca l'alias di una tabella (lettera sottolineata in blu) per modificarlo
Seleziona tutto / nessuno
Ai piedi di ogni scheda
Svuota canvas
Elimina tutte le tabelle dal canvas
Note
- I JOIN vengono rilevati tramite information_schema.KEY_COLUMN_USAGE (sintassi MySQL/MariaDB). Se il database non ha FK dichiarate, apparirà un CROSS JOIN che dovrai aggiustare manualmente nell'editor.
- L'SQL generato è un punto di partenza; puoi modificarlo liberamente una volta inserito.
Disponibile su macOS, iPad e iPhone.
Condizioni (WHERE)
Tra il canvas e il SQL c'è una sezione Condizioni, richiudibile, dove si filtra la query. Premi Aggiungi condizione e scegli colonna, operatore e valore.
Dettaglio
Cosa fa
Operatori
=, !=, >, <, >=, <=, LIKE, NOT LIKE, IN, NOT IN, BETWEEN, IS NULL, IS NOT NULL. Sulle colonne numeriche LIKE non viene offerto.
Virgolette
Le decide il tipo dichiarato della colonna: un varchar viene citato anche se il valore sembra un numero.
IN
Valori separati da virgole. Se un valore contiene una virgola, racchiudilo tra apici singoli: 'Pérez, Ana', Luis.
Pulsante {}
Tratta il valore come espressione SQL invece che come letterale: un'altra colonna (p.fecha) o una funzione (NOW()).
AND / OR
Il connettore si sceglie per riga. Mescolandoli, il SQL esce con le parentesi esplicite, così la precedenza è quella che si legge.
Una condizione a metà non rompe la query: viene segnalata nell'elenco e omessa dal SQL.
Avviso di JOIN esterno
Con LEFT o RIGHT JOIN, filtrare nel WHERE la tabella del lato che può arrivare a NULL scarta proprio le righe senza corrispondenza, e il JOIN finisce per comportarsi come un INNER. Quando accade, la condizione viene segnalata e si offre Sposta nel ON, che la trasferisce nella condizione di unione conservando le righe orfane. IS NULL non avvisa: è lo schema deliberato per cercare «quelli che non ne hanno».
Il pannello delle tabelle ha un filtro per nome nell’intestazione: in un database con molte tabelle, digita parte del nome invece di scorrere fino a trovarla. È lo stesso albero dello schema usato nel resto dell’app, limitato al database attivo.
Parole chiave: query builder, costruttore, visivo, select, join, inner join, left join, foreign key, drag, canvas, tabelle, colonne, query, sql generato, where, condizioni, filtro, operatore, and, or, between, like, in, null, join esterno, on
Vista in miniatura dell'intero script con indicatore della posizione corrente.
Dove si trova: Editor SQL › Preferenze → Editor
La minimappa mostra una rappresentazione visiva ridotta di tutto il contenuto dell'editor nel margine destro. Una striscia semitrasparente blu indica quale porzione dello script è attualmente visibile nell'area principale.
Per attivarla:
- macOS: menu Calíope → Preferenze → Editor → Mostra minimappa.
- iPad:Impostazioni dell'app → stessa opzione.
Navigazione con la minimappa:
- Clic / tocco in un punto qualsiasi della minimappa sposta l'editor a quella posizione dello script.
- Trascinare sulla minimappa permette di navigare in modo continuo.
- La minimappa si aggiorna automaticamente durante la digitazione e al cambiare dello scorrimento.
Rappresentazione visiva:
Ogni riga dello script appare come una barra orizzontale la cui larghezza è proporzionale alla lunghezza della riga (normalizzata a 80 caratteri). Il colore corrisponde al testo dell'editor a bassa opacità; non replica i colori dell'evidenziazione della sintassi.
Dimensioni:
- macOS: 80 pt di larghezza nel margine destro dell'editor.
- iPad: 64 pt di larghezza. L'area di testo si adatta automaticamente per non restare coperta.
Disponibile su macOS, iPad e iPhone.
Parole chiave: minimap, minimappa, mappa, panoramica, navigazione, script completo, scorrimento, scroll, margine destro, posizione
Trascina un file .sql o .txt direttamente sul workspace per aprirlo in un nuovo tab dell'editor.
Dove si trova: Workspace › Editor SQL
Apri file SQL trascinandoli
Puoi aprire qualsiasi file .sql o .txt trascinandolo direttamente sulla finestra del workspace di Calíope, senza usare il menu né il selettore di file.
Come farlo su macOS:
1. Apri il Finder e individua il tuo file .sql.
2. Trascina il file sull'area principale del workspace di Calíope.
3. Appare un indicatore visivo blu mentre mantieni il file sull'area.
4. Rilascia il file — il contenuto si apre automaticamente in un nuovo tab dell'editor SQL.
Come farlo su iPad:
1. Apri l'app File in Split View o Stage Manager accanto a Calíope.
2. Tieni premuto il file .sql finché non si "solleva".
3. Trascinalo verso il workspace di Calíope.
4. Rilascia sull'area dell'editor — il contenuto si apre in un nuovo tab.
Altri metodi di apertura:
- Menu File → Apri file SQL… (scorciatoia: ⌃⌥O su macOS)
- Trascinare sull'icona del Dock su macOS (gestito dal sistema)
- Condividi → Apri con Calíope dall'app File su iPad
Riordina i gruppi di pulsanti nelle barre dell'editor e dei risultati.
Dove si trova: Editor SQL › Personalizza (estremità sinistra di ogni barra)
Entrambe le barre degli strumenti dell'Editor SQL —la barra dell'editor (superiore) e la barra dei risultati (inferiore)— possono essere personalizzate per adattare l'ordine dei pulsanti al tuo flusso di lavoro.
Come farlo:
1. Premi il pulsante Personalizza (icona di tre cursori) che appare all'estremità sinistra di ogni barra.
2. Nel pannello che si apre, vedrai l'elenco dei gruppi di pulsanti nel loro ordine attuale.
3. Trascina ogni riga per riordinarla secondo le tue preferenze.
4. Premi Fatto per salvare le modifiche.
L'ordine viene salvato automaticamente e si mantiene tra le sessioni. Usa il pulsante Ripristina per tornare all'ordine predefinito.
I gruppi disponibili nella barra dell'editor sono: Esegui, Formato del codice, Sicurezza e transazioni, Cronologia e navigazione, Analisi SQL, Strumenti, Prestazioni, Connessione esterna e Dimensione del carattere.
I gruppi disponibili nella barra dei risultati sono: Delimitatore, Formato di output, Opzioni, Dimensione del carattere, Salva risultato, Blocca risultati e Analisi della query.
Disponibile su macOS, iPad e iPhone, con un ordine per il Mac e un altro condiviso da iPad e iPhone.
Parole chiave: personalizzare, riordinare, barra strumenti, toolbar, customize, ordine, gruppi, drag, trascina
Ricevi una notifica di sistema quando una query supera la soglia di tempo configurata.
Dove si trova: Calíope › Preferenze › Notifiche
Quando esegui una query che impiega più del previsto e passi a un'altra applicazione mentre aspetti, Calíope può inviarti una notifica locale al termine.
Configurare la soglia:
Vai in Preferenze › Notifiche e attiva Query lunga completata. Regola la soglia con il controllo a passi (per impostazione predefinita 5 s; intervallo 1–300 s).
La notifica scatta solo una volta per finestra di 60 s per evitare spam se esegui molte query in rapida successione. Arriva anche con Calíope in primo piano: gli unici avvisi silenziati con l'app davanti sono i due del backup manuale.
Parole chiave: notifica, query lunga, tempo, soglia, secondo piano, avviso
Avvisa quando una query restituisce un numero di righe superiore alla soglia configurata.
Dove si trova: Calíope › Preferenze › Notifiche
Se esegui una query che restituisce migliaia di righe, Calíope può avvisarti tramite una notifica locale.
Configurare la soglia:
Vai in Preferenze › Notifiche e attiva Risultato con volume insolito. Regola la soglia con il controllo a passi (per impostazione predefinita 10 000 righe; intervallo 1 000–100 000).
I dati vengono sempre mostrati sullo schermo; la notifica è solo informativa.
Parole chiave: notifica, risultato grande, righe, soglia, volume, avviso
Editor avanzato di celle (testo lungo, JSON, binario)
Modifica valori complessi in un foglio dedicato con schede per testo, JSON e dati binari.
Dove si trova: Risultati › clic destro › Modifica valore avanzato…
L'Editor avanzato di celle è un foglio modale pensato per valori che non entrano comodamente nella griglia: testi estesi (TEXT, MEDIUMTEXT, LONGTEXT), documenti JSON, contenuti binari (BLOB, VARBINARY) e stringhe con interruzioni di riga.
Come aprirlo
- macOS: fai clic destro sulla cella e scegli Modifica valore avanzato…, oppure premi ⌘E con la cella selezionata.
- iPad: tieni premuta la cella e scegli Modifica valore avanzato… nel menu contestuale.
Schede dell'editor
- Testo — campo di modifica di testo semplice con conteggio dei caratteri, conteggio delle righe e opzione di a capo. Utile per VARCHAR/TEXT con interruzioni di riga.
- JSON — editor con colorazione e validazione. Il pulsante Formatta applica un'indentazione di 2 spazi; Minifica lo lascia su una riga. Se il JSON non è valido, una barra inferiore mostra l'errore con la riga e la colonna esatte.
- Hex — scheda modificabile che mostra il contenuto in esadecimale (coppie in maiuscolo, 16 byte per riga). Accetta spazi, interruzioni di riga e un prefisso 0x opzionale quando incolli.
- Base64 — scheda modificabile con il contenuto in base64 standard (RFC 4648). Accetta spazi quando incolli.
- Immagine — anteprima dei byte attuali come immagine se il loro contenuto è interpretabile (PNG, JPEG, GIF, ecc.). Si aggiorna in tempo reale quando modifichi Hex o Base64. L'immagine si avvicina: pizzica con due dita, gira la rotella con il puntatore sopra, o usa i pulsanti in basso, che portano la percentuale in mezzo e le scorciatoie ⌘−, ⌘+ e ⌘0. L'intervallo va dal 100 %, cioè l'immagine adattata alla cornice, all'800 %; il doppio clic —doppio tocco su iPad— alterna tra adattata e 200 % ancorato dove hai toccato, e il trascinamento la sposta senza staccarla dal bordo.
Ogni scheda modificabile include i pulsanti Formatta (re-indenta i byte validi), Incolla (legge dagli appunti) e Ripristina (torna al valore originale). Se il contenuto digitato non si decodifica, un badge rosso lo indica e il pulsante OK si disattiva.
Salvare o scartare
- Salva — prepara l'istruzione UPDATE e la apre nell'Anteprima delle modifiche prima di eseguirla; non viene mai eseguita direttamente.
- Annulla — chiude senza modificare la riga. La cella originale rimane invariata.
Restrizioni
- Se la tabella non ha una chiave primaria o non si può identificare la riga in modo univoco, il pulsante Salva resta disattivato. In tal caso Calíope suggerisce di eseguire l'istruzione UPDATE manualmente.
- Per i valori NULL, usa il menu Valore › Imposta NULL all'interno dell'editor; non scrivere la parola letterale nel campo di testo.
- L'editor consegna i byte al pipeline UPDATE come stringa UTF-8. I byte che non formano UTF-8 valido (ad esempio 0xDEADBEEF puro) vengono sostituiti dal carattere di sostituzione al salvataggio; per questi casi è preferibile costruire l'UPDATE manualmente con UNHEX('…') o letterali 0x….
Esegui la stessa query su due database o server diversi e visualizza riga per riga le differenze.
Dove si trova: Editor SQL › Esegui su due database…
La vista Confronto dei risultati ti permette di eseguire una stessa query su due sessioni diverse — ad esempio, produzione vs. staging, o due repliche — e vedere le differenze riga per riga e cella per cella.
Come avviare il confronto
- Apri l'Editor SQL in una sessione, redigi la query e apri il menu Esegui ▸ nella barra della vista.
- Scegli Esegui su due database… e seleziona il secondo database o server con cui vuoi confrontare. Entrambe le esecuzioni vengono eseguite in parallelo.
- Al termine, la griglia dei risultati viene sostituita dalla vista confrontata.
Barra di riepilogo (in alto)
- Due "badge" con il colore di ciascun database: blu = primario, arancione = secondario. Ognuno mostra il nome della sessione, il numero di righe e il tempo (ms).
- Distintivo di differenze: verde con ✓ Identici quando tutto coincide, o arancione con ⚠︎ che indica quanti valori differiscono (N differenze) e quante righe esistono solo su un lato (M righe extra).
- Toggle Solo diff — filtra la tabella per mostrare unicamente le righe con differenza.
Griglia di confronto
- Ogni riga inizia con un indicatore:
- = (grigio) — la riga è identica in entrambi i database.
- P (blu) — riga del lato primario.
- S (arancione) — riga del lato secondario.
- Le righe con valori diversi appaiono appaiate (P sopra, S sotto) con le celle divergenti evidenziate in rosso (primario) o verde (secondario).
- Le righe che esistono solo su un lato appaiono con uno sfondo tinto più intenso.
Altri stati
- Righe interessate — se la query è un INSERT/UPDATE/DELETE, la vista mostra grandi contatori fianco a fianco con l'etichetta Righe interessate identiche o la differenza numerica.
- Errore in una o entrambe — se un'esecuzione è fallita, appare il blocco di errore con il messaggio monospaziato (selezionabile).
- Colonne non coincidono — se le due query hanno restituito insiemi di colonne diversi, vengono elencate fianco a fianco con + per le colonne extra e ✓ per quelle comuni.
Menu contestuale su una cella
- Copia — copia il valore esatto negli appunti del sistema.
Note
- L'ordine delle righe proviene da ogni motore così com'è; per confronti stabili usa sempre un ORDER BY esplicito.
- I valori NULL vengono mostrati in rosso tenue con l'etichetta letterale NULL.
Parole chiave: confrontare, confronto, diff, differenze, due database, due server, primary, secondary, primaria, secondaria, solo diff, righe identiche, righe interessate, colonne non coincidono, doppie, fianco a fianco
Come vengono lette le colonne GEOMETRY, come si disegnano e come si modificano senza scrivere SQL a mano.
Dove si trova: Editor SQL › Mappa
Una colonna GEOMETRY — POINT, LINESTRING, POLYGON e le loro varianti multiple — non appare più come una manciata di byte: Calíope la mostra come testo WKT nella griglia, esattamente come la scriverebbe ST_AsText, e la disegna su una mappa.
Aprire la mappa
Con un risultato che contiene almeno una colonna spaziale, il pulsante Mappa nella barra dei risultati apre un pannello sotto la griglia. Trascina il separatore per dividere l'altezza con il resto dell'editor, come per il grafico o il terminale.
Se il risultato ha più colonne spaziali, un selettore a sinistra sceglie quale disegnare. I punti appaiono come spilli, le linee e i poligoni come tracciati; un poligono con fori viene disegnato con i suoi fori.
Ciò che non si disegna, si dice
In fondo al pannello compaiono i conteggi che spiegano la differenza tra le righe del risultato e ciò che si vede sulla mappa: quante righe non hanno geometria, quante sono rimaste fuori per il limite di disegno — diecimila geometrie — e quante non si sono potute leggere. Una riga che non si vede non sparisce mai in silenzio.
Modificare
Il selettore di modalità ha tre posizioni. In Esplora si guarda soltanto. In Sposta gli spilli si trascinano: quando ne rilasci uno, Calíope compone l'istruzione UPDATE e la mostra prima di eseguirla — non viene scritto nulla finché non premi Applica, e se annulli lo spillo torna al suo posto. In Aggiungi, un tocco sulla mappa propone l'INSERT di una nuova geometria.
Selezionando una linea o un poligono in modalità Sposta compaiono i suoi vertici: quelli tondi si trascinano per spostarli, e quelli contrassegnati con +, a metà di ogni segmento, creano un vertice nuovo quando li trascini. Gli anelli di un poligono restano chiusi da soli.
Il pulsante Svuota imposta a NULL la geometria della riga selezionata senza eliminare la riga.
Quando non si può modificare
Se al posto del selettore di modalità vedi un lucchetto, la mappa è di sola lettura. I casi sono due, e il motivo compare passando il puntatore: la query non consente di sapere su quale tabella si scriverebbe — un JOIN, una vista, una sottoquery — oppure il risultato non ha una chiave primaria affidabile. Senza di essa un UPDATE potrebbe toccare più righe, quindi Calíope preferisce non proporlo. Di solito basta aggiungere la chiave primaria al SELECT.
L'ordine delle coordinate
In POINT(a b), quale dei due numeri sia la latitudine dipende dal server e dal sistema di riferimento, e non è un dettaglio da poco: al contrario, un punto di Madrid finisce nell'oceano Indiano. MySQL 8 con SRID 4326 scrive prima la latitudine, perché è quanto dichiara EPSG:4326; MariaDB e SRID 0 scrivono prima la longitudine. Calíope lo risolve da sé — mostra e scrive nello stesso ordine del server — ed è per questo che il testo della cella coincide sempre con quanto restituisce ST_AsText su quello stesso server.
Parole chiave: spaziale, gis, mappa, geometry, point, poligono, linestring, coordinate, latitudine, longitudine, srid, wkt, geolocalizzazione, mapkit
Statistiche dettagliate di una colonna del risultato: min, max, avg, NULL, distinti e valori più frequenti.
Dove si trova: Griglia dei risultati › clic destro › Profila la colonna…
Il Profilatore di colonna analizza i valori di qualsiasi colonna del risultato di una query SQL.
Come attivarlo:
- macOS: fai clic destro sull'intestazione di una colonna nella griglia dei risultati e seleziona Profila la colonna…
- iPad: tocca il pulsante Profila col. nella barra dei risultati per aprire il pannello con il selettore di colonna.
Informazioni mostrate:
- Totale di righe, conteggio dei NULL e percentuale
- Valori distinti e relativa percentuale
- Minimo, massimo e media (se la colonna è numerica)
- Top 8 valori più frequenti con grafico a barre
I calcoli vengono eseguiti sulle righe già caricate, senza eseguire query aggiuntive al server.
Scompone le fasi interne di una query con il relativo tempo di esecuzione.
Dove si trova: Editor SQL › Profila
Il Profilatore di query usa SET profiling = 1 e SHOW PROFILE FOR QUERY n (sintassi MySQL/MariaDB) per ottenere la scomposizione delle fasi interne di MySQL durante l'esecuzione di una query.
Come attivarlo: premi il pulsante Profila nella barra dei risultati dell'Editor SQL. Calíope riesegue la query corrente e mostra le fasi (parsing, optimizing, executing, sending data, ecc.) con la loro durata in millisecondi.
Il grafico a barre orizzontali evidenzia visivamente le fasi più costose. La colonna % indica quale frazione del tempo totale consuma ciascuna fase. Se una fase supera il 50% viene segnata in rosso.
> Nota:SHOW PROFILE richiede la variabile have_profiling = YES sul server. Potrebbe non essere disponibile nelle versioni moderne di MySQL 8.0+ dove è stata deprecata; in tal caso usa Visual EXPLAIN al suo posto.
Parole chiave: SHOW PROFILE, profiling, fasi, esecuzione, parsing, optimizing, sending data, prestazioni
Rileva percorsi completi nel piano di esecuzione e suggerisce CREATE INDEX.
Dove si trova: Editor SQL › Indici
Il Consulente di indici chiede il piano di esecuzione della query corrente e vi cerca i percorsi completi di tabella.
Come attivarlo: premi Indici nella barra dei risultati. Calíope mostra:
1. Il piano tradotto, nodo per nodo, con lo stesso vocabolario e gli stessi colori di Visual EXPLAIN: i percorsi completi escono in rosso.
2. I suggerimenti, con il motivo e i pulsanti per copiare l'SQL o inserirlo nell'editor. Se la query filtra per una colonna che nessun indice copre, il suggerimento è un CREATE INDEX su quella colonna; se non filtra per nessuna, nessun indice evita il percorso e il suggerimento lo dice sotto forma di commento, invece di proporre un indice che non servirebbe.
Se non ci sono percorsi completi, appare un bollo verde. Il consulente copre il caso più comune; per l'albero intero, con le sue righe e il suo dettaglio, usa Visual EXPLAIN.
Parole chiave: EXPLAIN, indice, percorso completo, Full Table Scan, CREATE INDEX, ottimizzazione, prestazioni, consulente
Visualizza il risultato di una query come grafico a barre, a linee o a torta.
Dove si trova: Editor SQL › Grafico
Il Grafico del risultato converte le righe di una query SELECT in una visualizzazione interattiva usando Swift Charts.
Come attivarlo: esegui una query che restituisca dati e premi Grafico nella barra dei risultati. Il pannello del grafico appare sotto la griglia.
Controlli:
- Tipo: Barre, Linee o Torta
- Asse X: colonna usata come etichetta (consigliato: testo o data)
- Asse Y: colonna numerica da rappresentare
- Max: numero massimo di righe da graficare (5–500)
Il grafico rileva automaticamente le colonne numeriche e seleziona i valori più sensati. Funziona su macOS, su iPad e su iPhone.
Parole chiave: grafico, chart, barre, linee, torta, pie, visualizzare, Swift Charts, risultato
Misura il tempo di esecuzione di una query SQL su più iterazioni con statistiche dettagliate.
Dove si trova: Editor SQL › Benchmark
Il Benchmark esegue la query attiva dell'editor N volte e calcola statistiche di prestazioni, consentendoti di rilevare variazioni di tempo e valutare l'impatto di modifiche agli indici o alla struttura.
Come attivarlo:
Premi il pulsante Benchmark (icona del cronometro) nella barra degli strumenti dell'Editor SQL. Si apre un foglio con l'SQL della query attiva precaricato.
Controlli:
- Iterazioni — usa lo stepper per scegliere quante volte viene eseguita la query (1–1000, incrementi di 10). Il valore predefinito è 10 iterazioni.
- Avvia benchmark — inizia l'esecuzione. Il pulsante è disabilitato se l'editor è vuoto.
- Ferma — annulla l'esecuzione in corso e conserva i risultati accumulati fino a quel momento.
Metriche mostrate:
- Totale — somma di tutti i tempi di esecuzione in ms.
- Media — media aritmetica dei tempi di esecuzione.
- Minimo — l'esecuzione più veloce.
- Massimo — l'esecuzione più lenta.
- Dev. Std. — deviazione standard: valori alti indicano incoerenza nei tempi (possibile contesa o carico variabile del server).
Grafico a barre: ogni barra rappresenta un'iterazione. Le barre sono colorate in verde (veloce), giallo (intermedio) o rosso (lento, oltre il 66% del massimo) per identificare visivamente gli outlier.
Casi d'uso:
- Confrontare il tempo di una query prima e dopo la creazione di un indice.
- Verificare se il server risponde in modo coerente sotto carico.
- Misurare l'impatto di modifiche alla clausola WHERE o ai JOIN.