Capisci cosa sta facendo davvero PostgreSQL

Strumenti gratuiti che girano nel browser e guide senza fronzoli per sviluppatori che lavorano con PostgreSQL ogni giorno: leggere i piani di esecuzione, scegliere l'indice giusto, tenere sotto controllo VACUUM.

🔒 Non viene caricato nulla. Tutto il parsing e l'analisi avvengono lato client nel tuo browser. I tuoi piani di esecuzione, le tue query e i tuoi dati non raggiungono mai alcun server.

Strumenti

Strumento

EXPLAIN ANALYZE Visualizer

Incolla l'output di EXPLAIN ANALYZE — testo semplice o JSON — e ottieni un flame graph più un albero del piano interattivo: tempi per nodo, discrepanze nelle stime delle righe e spill su disco evidenziati automaticamente. Link condivisibili inclusi.

Guide PostgreSQL

Tutte le guide →
Guida

Come leggere EXPLAIN ANALYZE

Costi contro tempi reali, medie per loop, buffer e le trappole classiche che rendono i piani ingannevoli.

Guida

Scegliere l'indice giusto

B-tree, GIN, GiST, BRIN e compagni: a cosa serve ogni tipo di indice, più indici parziali, su espressione e covering.

Guida

VACUUM, autovacuum e bloat

Perché MVCC lascia dietro di sé righe morte, come autovacuum decide quando eseguire e come accorgersi di una tabella che si sta gonfiando.

Guida

Livelli di isolamento delle transazioni

Read Committed contro Repeatable Read contro Serializable nella pratica: anomalie, errori di serializzazione e quando ritentare.

Riferimento

Cheat sheet PostgreSQL

I comandi di tutti i giorni su un foglio stampabile: psql, attività e lock, kill, dimensioni, vacuum, EXPLAIN, backup, privilegi, SQLSTATE.

Riferimento agli errori PostgreSQL

Tutti gli errori →
Errore

deadlock detected

Due transazioni detengono ciascuna un lock di cui l'altra ha bisogno. Come leggere le righe DETAIL e le abitudini di ordinamento dei lock che lo prevengono.

Errore

too many clients already

max_connections è esaurito. Chi sta occupando gli slot, e perché la soluzione duratura è di solito un pooler, non un limite più alto.

Errore

duplicate key value

Un vincolo di unicità ha fatto il suo lavoro — la domanda interessante è il perché: una insert in race, una sequence non aggiornata o un client che ritenta.

Errore

relation does not exist

La tabella esiste — semplicemente non stai guardando dove guarda PostgreSQL: search_path, identificatori tra virgolette, database sbagliato.

Perché pgviz?

Leggere un piano di esecuzione grezzo di PostgreSQL è difficile: i tempi sono cumulativi, i conteggi delle righe sono medie per loop e i problemi interessanti (stime sbagliate, sort che spillano su disco, nested loop costosi) si nascondono nei dettagli. Gli strumenti di questo sito fanno i conti al posto tuo e indicano ciò che conta davvero, e le guide spiegano i concetti dietro i numeri.

Tutto qui è gratuito, funziona offline una volta caricato e non invia nulla ad alcun server. Accanto agli strumenti troverai guide pratiche e un crescente riferimento agli errori comuni di PostgreSQL — cosa significa ciascuno, perché accade e come risolverlo. Ne arriveranno altri: un generatore di postgresql.conf e un calcolatore della dimensione degli indici.