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.

Visual EXPLAIN

Visualizzare il piano di esecuzione

Mostra l'albero delle operazioni dell'ottimizzatore di query.

Dove si trova: Editor SQL › Visual EXPLAIN

Con una query SELECT nell'Editor SQL, premi Visual EXPLAIN nella barra degli strumenti. Calíope chiede al server il piano senza eseguire la query —EXPLAIN FORMAT=JSON in MySQL e MariaDB, EXPLAIN (FORMAT JSON) in PostgreSQL, SET SHOWPLAN_XML in SQL Server, EXPLAIN PLAN json = 1 in ClickHouse, EXPLAIN PLAN FOR in Oracle— e apre la tab Visual EXPLAIN con l'albero dei nodi del piano.

Ogni nodo mostra il tipo di accesso, l'indice usato (se applicabile), la stima delle righe e il dettaglio che aggiunge il motore: la condizione, l'indice scelto o il costo. Il tempo compare solo se il motore l'ha misurato, e senza eseguire la query nessuno lo misura.

Oracle

In Oracle il piano viene scritto in PLAN_TABLE, e Calíope ne cancella le righe appena lo legge: chiedere il piano è una scrittura sul server, anche se la query è una SELECT. Il dettaglio di ogni nodo riporta l'operazione (TABLE ACCESS FULL, INDEX RANGE SCAN), i predicati access e filter e il costo con i byte stimati.

ClickHouse

In ClickHouse la lettura di ogni tabella è gialla se la chiave o un indice di salto ha scartato dei granuli, e rossa se li ha letti tutti. Il suo dettaglio comincia con i granuli letti su quelli presenti («granuli 2/123»), prosegue con ciò che ha scartato ogni indice, in granuli e parti, e termina con la stima di righe, parti e mark.

Navigare l'albero:
- macOS: la rotella del mouse o un pizzico a due dita sul trackpad per lo zoom; trascina per spostare l'area.
- iPad: pizzica con due dita per lo zoom, e trascina con un dito per spostarti.
- Su tutti: i pulsanti − e + della barra, con la percentuale in mezzo, e Adatta alla finestra per inquadrare tutto l'albero. Le scorciatoie sono ⌘−, ⌘+ e ⌘0.

La scala va dal 18 % al 350 %, che è spazio più che sufficiente per piani con molti livelli di annidamento.

Apple Vision Pro: come sull'iPad, con i suoi gesti: pizzicare e muovere per scorrere la tela, e pizzicare con due mani per lo zoom. I pulsanti e le scorciatoie sono gli stessi.

Parole chiave: explain, piano, ottimizzatore, albero, JSON explain, zoom, pan, navigare, pinch

Interpretare i colori di accesso

I colori dei nodi indicano l'efficienza dell'accesso ai dati.

Dove si trova: Visual EXPLAIN › Legenda dei colori

I nodi del Visual EXPLAIN sono colorati in base al tipo di accesso, e ogni scheda lo scrive anche nella riga Accesso: verde = ricerca per chiave o costante (il motore va dritto alla riga, o non legge alcun dato), giallo = scansione di un intervallo di un indice, arancione = scansione di un indice intero, rosso = scansione completa della tabella (senza indice, il caso peggiore), blu = ordinamento, viola = join di più tabelle, grigio = il resto (un'aggregazione, una sottoquery o un'operazione che Calíope non classifica). La legenda nella barra nomina i quattro che dicono di più: verde, giallo, rosso e blu.

Un nodo rosso indica un'opportunità di ottimizzazione, generalmente aggiungendo un indice.

Parole chiave: full scan, range, indice, colori, ottimizzazione, explain

Visual EXPLAIN con VoiceOver

Il canvas è un disegno che VoiceOver non può leggere: il piano viene dato come elenco nell’ordine dell’albero, rientrato per profondità.

Dove si trova: Workspace › Strumenti › EXPLAIN

Il canvas del piano è un disegno che VoiceOver non può leggere, quindi Calíope lo offre come elenco. La sezione Gerarchia del Piano di Esecuzione ha una riga per nodo, nell’ordine dell’albero e rientrata per profondità, con il nome del nodo e il suo tipo di accesso, le righe stimate, il tempo e il dettaglio. Il tempo mostra sempre «—», perché il piano viene richiesto senza eseguire la query.

Funziona allo stesso modo su tutte le piattaforme.

Parole chiave: VoiceOver, accessibilità, EXPLAIN, piano, nodi