Obsah
Když pracujeme s databázemi, existuje okamžik, že už se nejedná pouze o získání informací, které se nás týkají, ale o to, jak je získáme, protože v závislosti na konstrukci dotazu to bude množství zdrojů, které náš dotaz spotřebuje. PostgreSQL nám nabízí VYSVĚTLIT nástroj, pomocí kterého vidíme, jak se náš dotaz provádí a vše, co představuje.VYSVĚTLUJTE a VYSVĚTLUJTE ANALÝZU
Tyto dva nástroje jsou hlavní základnou při hledání problémů s výkonem dotazů, které provádíme, přestože nejsou užitečné, nejsou ničím novým, protože byly zahrnuty do PostgreSQL Od svých raných let to ale neznamená, že jsou zastaralé nebo zastaralé, naopak, dospěly k tomu, aby se staly nástrojem schopným produkovat nejpodrobnější zprávy o provádění dotazů, včetně výsledků, které nástroj přináší. získané ve formátech jako XML nebo JSON pro pozdější analýzu s jinými nástroji.
v pgAdmin máme k dispozici možnost získat graf výsledku VYSVĚTLIT takže místo analýzy čísel můžeme vidět graf a tímto způsobem snadněji detekovat problémy dotazu a příležitosti ke zlepšení.
Rozdíly mezi VYSVĚTLENÍ a VYSVĚTLENÍ ANALÝZY
Možná se oba termíny používají, jako by byly stejné, ale například mezi nimi máme rozdíly VYSVĚTLIT dává nám představu o tom, jak plánovač dotazů hodlá dotaz provést, ale místo toho jej neprovede VYSVĚTLENÍ ANALÝZY pokud jej provedete a poskytne nám srovnání mezi očekávaným výkonem a skutečným výkonem získaným při provádění. Při spuštění VYSVĚTLIT přes pgAdmin Můžeme si vybrat mezi VYSVĚTLENÍ a VYSVĚTLENÍ ANALÝZY, které nám poskytnou výsledek každého z nich, když je vybereme
Podívejme se na příklad toho, jak tento nástroj používat, k tomu budeme používat VYSVĚTLENÍ ANALÝZY, podívejme se na následující kód:
VYSVĚTLENÍ VÝBĚR ANALÝZY vlevo (trakt_id, 5) Jako kód kraje, SUM (hispanic_or_latino) Jako tot, SUM (white_alone) Jako tot_white, SUM (coalesce (hispanic_or_latino, 0) - coalesce (white_alone, 0)) AS non_white FROM census.hisp_pop county_code ***** BY county_code;
Jedná se o velmi jednoduchý dotaz, kde sečteme pole, skupinu a pořadí podle jednoho z polí, což získáme v důsledku výkonnostní analýzy, bude následující:
GroupAggregate (náklady = 111,29… 151,93 řádků = 1478) (skutečný čas = 6,099… 10,194 řádků = 14 smyček = 1) -> Řazení (náklady = 111,29… 114,98 řádků = 1478) (skutečný čas = 5,897… 6,565 řádků = 1478 smyček = 1) Klíč řazení: ("vlevo" ((tract_id) :: text, 5)) Metoda řazení: quicksort Paměť: 136kB -> Seq Scan na hisp_pop (cena = 0,00… 33,48 řádků = 1478) (skutečný čas = 0,390… 2,693 řádky = 1478 smyček = 1) Celková doba běhu: 10 370 ms
Pokud vynaložíme trochu úsilí na čtení, výsledky se nám postupně začnou snáze číst, ale pokud nemáme mnoho času nebo je výsledek velmi rozsáhlý, můžeme graf vždy vidět.
Jak vidíme, je rychlejší vidět výsledky na grafické úrovni, ideální je použít oba nástroje a doplnit oba úhly pohledu, jsou to stejné informace pouze s různými úhly, najdou se puristé, kteří chtějí pouze pracovat s příkazovou konzolí a to je v pořádku. Komplexní databázový profesionál však musí ke zlepšení své práce použít všechny nástroje, které má k dispozici.
Tímto tutoriál dokončíme, s využitím těchto nástrojů již budeme schopni odhalit příčiny, kvůli nimž nejsou naše dotazy rychlé, nebo příležitosti ke zlepšení pro optimalizaci našeho dotazu.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod