I database riguardano esclusivamente le query. Memorizzi i tuoi dati al loro interno e poi devi essere in grado di recuperarli in qualche modo. Arrivano le query:le scrivi in una lingua, strutturata o meno, in questo modo definisci quali dati vuoi recuperare. Idealmente, quelle query sarebbero veloci, dopotutto non vogliamo aspettare i nostri dati. Esistono molti strumenti che ti consentono di capire come si comportano le tue query e come si comportano. In questo post del blog confronteremo pgDash e ClusterControl. In entrambi i casi le prestazioni delle query sono solo una parte della funzionalità. Senza ulteriore dovuto diamo un'occhiata a loro.
Cos'è pgDash?
pgDash è uno strumento dedicato al monitoraggio di PostgreSQL e il monitoraggio delle prestazioni delle query è una delle funzionalità disponibili.
pgDash richiede pg_stat_statements per ottenere i dati. È possibile visualizzare le query in base al database. È possibile definire quali colonne devono essere visibili (per impostazione predefinita alcune di esse non vengono visualizzate, per facilitare la lettura dei dati). Puoi visualizzare più tipi di dati come il tempo di esecuzione (medio, massimo, minimo, totale) ma anche informazioni su blocchi temporanei, righe a cui si accede, accesso al disco e hit del buffer. Questo crea una buona visione delle prestazioni di una determinata query e quale potrebbe essere il motivo per cui non funziona in modo efficiente. Puoi ordinare i dati utilizzando qualsiasi colonna alla ricerca di query che, ad esempio, sono le più lente o che scrivono i blocchi più temporanei.
Se necessario, puoi cercare le query eseguite in un intervallo di tempo definito.
La granularità qui è di un minuto.
Per ogni query nell'elenco puoi fare clic e visualizzare statistiche più dettagliate.
Puoi vedere la query esatta, alcuni dati su di essa (accesso al disco, accesso al buffer condiviso, accesso a blocchi temporanei). È anche possibile abilitare il test e la memorizzazione del piano di esecuzione delle query. Infine puoi vedere i grafici che mostrano come le prestazioni della query sono cambiate nel tempo.
Nel complesso, pgDash offre una buona panoramica delle metriche delle prestazioni delle query in PostgreSQL.
Monitoraggio e gestione delle query PostgreSQL di ClusterControl
ClusterControl viene fornito con Query Monitor che ha lo scopo di fornire agli utenti informazioni dettagliate sulle prestazioni delle loro query. Query Monitor può essere utilizzato per PostgreSQL ma anche per MySQL e Galera Cluster.
ClusterControl mostra i dati aggregati in tutti i database e gli host nel cluster. L'elenco delle query contiene informazioni sulle metriche relative alle prestazioni. Numero di occorrenze, righe esaminate, tabelle temporanee, tempo massimo, medio e totale di esecuzione. L'elenco può essere ordinato utilizzando alcune colonne (occorrenze, max, media, deviazione standard e tempo di esecuzione totale).
Ogni query può essere cliccata, mostra il testo completo della query, alcuni aggiuntivi dettagli e i suggerimenti generali per l'ottimizzazione.
ClusterControl include anche il modulo Query Outliers.
Se sono presenti query che si discostano dalle prestazioni medie di quella particolare query tipo, verranno mostrati in questa sezione, consentendo all'utente di capire meglio quali query si comportano in modo incoerente e cercare di trovare la causa principale di ciò.
Tabella PostgreSQL e metriche di indice
Oltre ai dati direttamente correlati alle prestazioni della query, entrambi gli strumenti forniscono informazioni su altri elementi interni che possono influire sulle prestazioni della query.
pgDash ha una sezione "Strumenti" in cui puoi raccogliere informazioni su indici, dimensioni della tabella e bloat:
Dati simili sono disponibili in ClusterControl, in Query Statistics:
È possibile controllare le statistiche I/O per tabelle e indici, tabella e indice gonfio, indici inutilizzati o duplicati. Puoi anche controllare a quali tabelle è più probabile accedere utilizzando scansioni di indici o sequenziali. Puoi anche controllare le dimensioni delle tabelle e dei database più grandi.
Conclusione
Ci auguriamo che questo breve blog ti fornisca informazioni su come ClusterControl si confronta con pgDash nelle funzionalità relative alle prestazioni delle query. Tieni presente che ClusterControl ha lo scopo non solo di assisterti nel monitoraggio delle prestazioni, ma anche di creare e distribuire stack HA per più database Open Source, eseguire la gestione della configurazione, definire ed eseguire pianificazioni di backup e molte altre funzionalità. Se sei interessato a ClusterControl, puoi scaricarlo gratuitamente.