PostgreSQL - Spiegare

Sommario
C'è un punto quando lavoriamo con i database che non è più solo ottenere le informazioni che ci riguardano, ma come le otteniamo, poiché a seconda della costruzione della query sarà la quantità di risorse che la nostra query consuma, per questo PostgreSQL ci offre SPIEGARE uno strumento con cui vediamo come viene eseguita la nostra query e tutto ciò che rappresenta.
SPIEGARE e SPIEGARE ANALIZZA
Questi due strumenti sono la base principale quando si cercano i problemi di prestazioni delle query che eseguiamo, nonostante la loro utilità non sono una novità poiché sono stati inclusi in PostgreSQL Fin dai suoi primi anni, ma questo non significa che siano obsoleti o superati, al contrario, sono maturati fino a diventare uno strumento in grado di produrre i report più dettagliati sull'esecuzione delle query, compresi i risultati lanciati dallo strumento possono essere ottenuto in formati come XML o JSON per analisi successive con altri strumenti.
Nel pgAdmin abbiamo a disposizione un'opzione per ottenere un grafico del risultato di SPIEGARE in modo che invece di analizzare i numeri possiamo vedere un grafico e in questo modo rilevare più facilmente i problemi della query e le opportunità di miglioramento.
Differenze tra EXPLAIN e EXPLAIN ANALYZE
Forse entrambi i termini sono usati come se fossero la stessa cosa, ma tra loro abbiamo delle differenze, per esempio SPIEGARE ci dà un'idea di come il pianificatore di query intende eseguire la query, tuttavia non la esegue, invece SPIEGARE ANALISI se lo esegui e ci fornisce un confronto tra le prestazioni previste e le prestazioni reali ottenute nell'esecuzione. All'avvio SPIEGARE attraverso pgAdmin Possiamo scegliere tra EXPLAIN e EXPLAIN ANALYZE, che ci darà il risultato di ciascuno mentre li selezioniamo
Vediamo un esempio di come utilizzare questo strumento, per questo useremo SPIEGARE ANALISI, vediamo il seguente codice:
 SPIEGARE ANALISI SELEZIONA left (tract_id, 5) As county_code, SUM (hispanic_or_latino) As tot, SUM (white_alone) As tot_white, SUM (coalesce (hispanic_or_latino, 0) - coalesce (white_alone, 0)) AS non_white FROM census.hisp_pop GROUP BY codice_contea ***** PER codice_contea; 

È una query molto semplice in cui sommiamo i campi, raggruppiamo e ordiniamo secondo uno dei campi, quello che otterremo come risultato dell'analisi delle prestazioni sarà il seguente:
 GroupAggregate (costo = 111,29… 151,93 righe = 1478) (tempo effettivo = 6,099… 10,194 righe = 14 cicli = 1) -> Ordina (costo = 111,29… 114,98 righe = 1478) (tempo effettivo = 5,897… 6,565 righe = 1478 cicli = 1) Chiave di ordinamento: ("sinistra" ((tract_id) :: text, 5)) Metodo di ordinamento: quicksort Memoria: 136kB -> Scansione sequenziale su hisp_pop (costo = 0,00… 33,48 righe = 1478) (tempo effettivo = 0,390… 2,693 righe = 1478 loop = 1) Tempo di esecuzione totale: 10.370 ms 

Se ci impegniamo un po' nella lettura, i risultati diventano gradualmente più facili da leggere, tuttavia se non abbiamo molto tempo o il risultato è molto ampio possiamo sempre vedere il grafico.

Come possiamo vedere, è più veloce vedere i risultati a livello grafico, l'ideale è usare entrambi gli strumenti e completare entrambi i punti di vista, sono le stesse informazioni solo con angolazioni diverse, ci saranno puristi che vogliono solo lavorare con la console di comando e va bene, ma un professionista di database completo deve utilizzare tutti gli strumenti a sua disposizione per migliorare il suo lavoro.
Con questo finiamo il tutorial, con l'uso di questi strumenti saremo già in grado di rilevare le cause che rendono le nostre query non veloci o le opportunità di miglioramento per ottimizzare la nostra query.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave