PostgreSQL - Förklara

Innehållsförteckning
Det finns en punkt när vi arbetar med databaser att det inte längre bara är att hämta informationen som berör oss, utan hur vi får den, eftersom det beroende på konstruktionen av frågan kommer att vara mängden resurser som vår fråga förbrukar, för detta PostgreSQL erbjuder oss FÖRKLARA ett verktyg med vilket vi ser hur vår fråga körs och allt den representerar.
FÖRKLARA och FÖRKLARA ANALYSERA
Dessa två verktyg är huvudbasen när vi letar efter prestandaproblemen för de frågor som vi utför, trots deras användbarhet är de inte något nytt eftersom de har inkluderats i PostgreSQL Sedan de första åren, men det betyder inte att de är föråldrade eller föråldrade, tvärtom har de mognat till att bli ett verktyg som kan producera de mest detaljerade rapporterna om genomförandet av frågor, inklusive resultaten som verktyget kastar kan vara erhållna. i format som XML eller JSON för senare analys med andra verktyg.
I pgAdmin vi har ett alternativ för att få en graf över resultatet av FÖRKLARA så att vi istället för att analysera siffror kan se en graf och på detta sätt lättare upptäcka frågans problem och möjligheterna till förbättring.
Skillnader mellan EXPLAIN och EXPLAIN ANALYZE
Kanske används båda termerna som om de vore samma sak, men mellan dem har vi till exempel skillnader FÖRKLARA ger oss en uppfattning om hur frågeplaneraren avser att köra frågan, men den utför den inte istället FÖRKLARA ANALYSERA om du kör det och det ger oss en jämförelse mellan den förväntade prestandan och den verkliga prestandan som uppnås vid utförandet. Vid lansering FÖRKLARA via pgAdmin Vi kan välja mellan EXPLAIN och EXPLAIN ANALYZE, vilket ger oss resultatet av var och en när vi väljer dem
Låt oss se ett exempel på hur du använder det här verktyget, för detta kommer vi att använda FÖRKLARA ANALYSERA, låt oss se följande kod:
 FÖRKLARA ANALYSERA VÄLJ vänster (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_ county_code ***** BY county_code; 

Det är en mycket enkel fråga där vi summerar fälten, grupperar och ordnar enligt ett av fälten, vad vi kommer att få till följd av resultatanalysen kommer att vara följande:
 GroupAggregate (kostnad = 111,29… 151,93 rader = 1478) (faktisk tid = 6,099… 10,194 rader = 14 slingor = 1) -> Sortera (kostnad = 111,29… 114,98 rader = 1478) (faktisk tid = 5,897… 6,565 rader = 1478 slingor = 1) Sorteringsnyckel: ("vänster" ((tract_id) :: text, 5)) Sorteringsmetod: snabbsortminne: 136kB -> Seq -skanning på hisp_pop (kostnad = 0,00… 33,48 rader = 1478) (verklig tid = 0,390 … 2,693 rader = 1478 slingor = 1) Total körtid: 10,370 ms 

Om vi ​​lägger lite ansträngning på att läsa blir resultaten gradvis lättare för oss att läsa, men om vi inte har mycket tid eller resultatet är mycket omfattande kan vi alltid se diagrammet.

Som vi kan se är det snabbare att se resultaten på en grafisk nivå, idealet är att använda båda verktygen och komplettera båda synpunkterna, det är samma information bara med olika vinklar, det kommer att finnas purister som bara vill arbeta med kommandokonsolen och det är bra. En omfattande databasprofessor måste dock använda alla verktyg han förfogar över för att förbättra sitt arbete.
Med detta avslutar vi handledningen, med hjälp av dessa verktyg kommer vi redan att kunna upptäcka orsakerna som gör att våra frågor inte går snabbt eller möjligheterna till förbättring för att optimera vår fråga.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave