{"id":75678,"date":"2020-03-27T19:42:27","date_gmt":"2020-03-27T17:42:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit"},"modified":"2020-03-27T19:42:27","modified_gmt":"2020-03-27T17:42:27","slug":"o-chem-molchit-explain-i-kak-ego-razgovorit","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit","title":{"rendered":"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Klasick\u00e1 ot\u00e1zka, ktor\u00fa si v\u00fdvoj\u00e1r kladie svojmu DBA alebo majite\u013e podniku \u2013 konzultantovi pre PostgreSQL, takmer v\u017edy znie rovnako: <i>\u201ePre\u010do sa dopyty na datab\u00e1ze vykon\u00e1vaj\u00fa tak dlho?\u201c<\/i><\/p>\n<p>Tradi\u010dn\u00e1 s\u00faprava pr\u00ed\u010din:<\/p>\n<ul>\n<li><b>neefekt\u00edvny algoritmus<\/b><br \/>\nke\u010f sa rozhodnete vykona\u0165 JOIN viacer\u00fdch CTE na nieko\u013ek\u00fdch desiatkach tis\u00edc z\u00e1znamov<\/li>\n<li><b>neaktu\u00e1lna \u0161tatistika<\/b><br \/>\nak sa faktick\u00e9 rozdelenie \u00fadajov v tabu\u013eke u\u017e zna\u010dne l\u00ed\u0161i od toho, \u010do bolo naposledy zhroma\u017eden\u00e9 ANALYZE,<\/li>\n<li><b>probl\u00e9m so zdrojmi<\/b><br \/>\na u\u017e nesta\u010d\u00ed pridelen\u00fd v\u00fdpo\u010dtov\u00fd v\u00fdkon CPU, pam\u00e4\u0165 neust\u00e1le naber\u00e1 gigabajty alebo disk nest\u00edha za v\u0161etk\u00fdmi 'po\u017eiadavkami' DB<\/li>\n<li><b>z\u00e1mky<\/b> od konkuren\u010dn\u00fdch procesov<\/li>\n<\/ul>\n<p>\nA ak s\u00fa z\u00e1mky dostato\u010dne zlo\u017eit\u00e9 na chytanie a anal\u00fdzu, pre v\u0161etko ostatn\u00e9 n\u00e1m sta\u010d\u00ed <b>pl\u00e1n dopytu<\/b>, ktor\u00fd m\u00f4\u017eeme z\u00edska\u0165 pomocou <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/12\/using-explain\">pr\u00edkazu EXPLAIN<\/a><\/noindex> (<i>je samozrejme lep\u0161ie okam\u017eite pou\u017ei\u0165 EXPLAIN (ANALYZE, BUFFERS) \u2026<\/i>) alebo <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/12\/auto-explain\">modulu auto_explain<\/a><\/noindex>.<\/p>\n<p>Ale, ako sa uv\u00e1dza v tej istej dokument\u00e1cii, <\/p>\n<blockquote><p>\u201ePorozumenie pl\u00e1nu je umenie, a aby ste ho zvl\u00e1dli, potrebujete ur\u010dit\u00fa sk\u00fasenos\u0165, \u2026\u201c<\/p><\/blockquote>\n<p> Ale m\u00f4\u017eete sa zaob\u00eds\u0165 aj bez neho, ak pou\u017eijete vhodn\u00fd n\u00e1stroj!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAko zvy\u010dajne vyzer\u00e1 pl\u00e1n dopytu? Takto:<\/p>\n<pre><code class=\"plaintext\">Index Scan using pg_class_relname_nsp_index on pg_class (skuto\u010dn\u00fd \u010das=0.049..0.050 riadky=1 slu\u010dky=1)\n  Index Cond: (relname = $1)\n  Filter: (oid = $0)\n  Buffers: shared hit=4\n  InitPlan 1 (vracia $0,$1)\n    -&gt;  Limit (skuto\u010dn\u00fd \u010das=0.019..0.020 riadky=1 slu\u010dky=1)\n          Buffers: shared hit=1\n          -&gt;  Seq Scan on pg_class pg_class_1 (skuto\u010dn\u00fd \u010das=0.015..0.015 riadky=1 slu\u010dky=1)\n                Filter: (relkind = 'r'::&quot;char&quot;)\n                Riadky odstr\u00e1nen\u00e9 filtrom: 5\n                Buffers: shared hit=1<\/code><\/pre>\n<p>\nalebo takto:<\/p>\n<pre><code class=\"plaintext\">&quot;Append  (n\u00e1klady=868.60..878.95 riadky=2 \u0161\u00edrka=233) (skuto\u010dn\u00fd \u010das=0.024..0.144 riadky=2 slu\u010dky=1)&quot;\n&quot;  Buffers: shared hit=3&quot;\n&quot;  CTE cl&quot;\n&quot;    -&gt;  Seq Scan on pg_class  (n\u00e1klady=0.00..868.60 riadky=9972 \u0161\u00edrka=537) (skuto\u010dn\u00fd \u010das=0.016..0.042 riadky=101 slu\u010dky=1)&quot;\n&quot;          Buffers: shared hit=3&quot;\n&quot;  -&gt;  Limit  (n\u00e1klady=0.00..0.10 riadky=1 \u0161\u00edrka=233) (skuto\u010dn\u00fd \u010das=0.023..0.024 riadky=1 slu\u010dky=1)&quot;\n&quot;        Buffers: shared hit=1&quot;\n&quot;        -&gt;  CTE Scan on cl  (n\u00e1klady=0.00..997.20 riadky=9972 \u0161\u00edrka=233) (skuto\u010dn\u00fd \u010das=0.021..0.021 riadky=1 slu\u010dky=1)&quot;\n&quot;              Buffers: shared hit=1&quot;\n&quot;  -&gt;  Limit  (n\u00e1klady=10.00..10.10 riadky=1 \u0161\u00edrka=233) (skuto\u010dn\u00fd \u010das=0.117..0.118 riadky=1 slu\u010dky=1)&quot;\n&quot;        Buffers: shared hit=2&quot;\n&quot;        -&gt;  CTE Scan on cl cl_1  (n\u00e1klady=0.00..997.20 riadky=9972 \u0161\u00edrka=233) (skuto\u010dn\u00fd \u010das=0.001..0.104 riadky=101 slu\u010dky=1)&quot;\n&quot;              Buffers: shared hit=2&quot;\n&quot;Pl\u00e1novanie \u010dasu: 0.634 ms&quot;\n&quot;\u010cas vykonania: 0.248 ms&quot;<\/code><\/pre>\n<p>\nAle \u010d\u00edta\u0165 pl\u00e1n textom \u201ez papiera\u201c \u2013 je ve\u013emi \u0165a\u017ek\u00e9 a nepreh\u013eadn\u00e9:<\/p>\n<ul>\n<li>v uzle sa uv\u00e1dza <b>s\u00fa\u010det po zdrojoch podstromu<\/b><br \/>\nteda, aby sme pochopili, ako dlho trvalo vykonanie konkr\u00e9tneho uzla, alebo ko\u013eko presne tieto \u010d\u00edtania z tabu\u013eky vy\u017eiadali \u00fadajov z disku \u2014 mus\u00edme akosi od\u010d\u00edta\u0165 jedno od druh\u00e9ho<\/li>\n<li>\u010das uzla je potrebn\u00fd <b>n\u00e1sobi\u0165 s loops<\/b><br \/>\n\u00e1no, od\u010d\u00edtanie e\u0161te nie je naj\u0165a\u017e\u0161ia oper\u00e1cia, ktor\u00fa treba robi\u0165 \u201ev hlave\u201c \u2014 ve\u010f \u010das vykonania je uveden\u00fd priemern\u00fd pre jedno vykonanie uzla, a t\u00fdch m\u00f4\u017ee by\u0165 stovky<\/li>\n<li>no, a to v\u0161etko dohromady br\u00e1ni odpoveda\u0165 na hlavn\u00fa ot\u00e1zku \u2014 tak\u017ee kto je <b>\u201enajslab\u0161\u00ed \u010dl\u00e1nok\u201c<\/b>?<\/li>\n<\/ul>\n<p>\nKe\u010f sme sa pok\u00fasili vysvetli\u0165 toto nieko\u013ek\u00fdm stovk\u00e1m na\u0161ich v\u00fdvoj\u00e1rov, tak sme pochopili, \u017ee z poh\u013eadu to vyzer\u00e1 asi takto:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/abb07e902639b5ec245851aa4a0edb58.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA, znamen\u00e1 to, \u017ee potrebujeme...<\/p>\n<h2>N\u00e1stroj<\/h2>\n<p>\nV \u0148om sme sa pok\u00fasili zhroma\u017edi\u0165 v\u0161etky k\u013e\u00fa\u010dov\u00e9 mechaniky, ktor\u00e9 pom\u00e1haj\u00fa pod\u013ea pl\u00e1nu a po\u017eiadavky pochopi\u0165, \u201ekto je vinn\u00fd a \u010do robi\u0165\u201c. No, a s\u010das\u0165ou na\u0161ich sk\u00fasenost\u00ed zdie\u013ea\u0165 s komunitou.<br \/>\nVitajte a pou\u017e\u00edvajte \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/explain.tensor.ru\/\">explain.tensor.ru<\/a><\/noindex> <\/p>\n<h3>Preh\u013eadnos\u0165 pl\u00e1nov<\/h3>\n<p>\nJe \u013eahk\u00e9 pochopi\u0165 pl\u00e1n, ke\u010f vyzer\u00e1 takto?<\/p>\n<pre><code class=\"plaintext\">Seq Scan on pg_class (actual time=0.009..1.304 rows=6609 loops=1)\n  Buffers: shared hit=263\nPlanning Time: 0.108 ms\nExecution Time: 1.800 ms\n<\/code><\/pre>\n<p>\nNie ve\u013emi.<\/p>\n<p>Ale takto, <b>v skr\u00e1tenej forme<\/b>, ke\u010f s\u00fa k\u013e\u00fa\u010dov\u00e9 ukazovatele oddelen\u00e9 \u2014 u\u017e je to ove\u013ea zrozumite\u013enej\u0161ie:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/18404ce800de847f1934ac2c7fef10be.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAle ak je pl\u00e1n zlo\u017eitej\u0161\u00ed \u2014 na pomoc pr\u00edde <b>piechart rozdelenia \u010dasu<\/b> pod\u013ea uzlov:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/ca9fdd07278801e4f3ad15e997efc1a0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNo, a pre najzlo\u017eitej\u0161ie varianty na pomoc sp\u011bchaj\u00fa <b>diagram vykonania<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/c03f358858206d7ccae20fd8142baa8c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNapr\u00edklad, existuj\u00fa dostato\u010dne netrivi\u00e1lne situ\u00e1cie, ke\u010f pl\u00e1n m\u00f4\u017ee ma\u0165 viac ako jeden skuto\u010dn\u00fd kore\u0148:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/ea4f3f498737e9cc3f8f40c16a5bd1d7.png\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/267273e8491d6b4403442672612c33ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>\u0160truktur\u00e1lne tipy<\/h3>\n<p>\nNo, a ak v\u0161etka \u0161trukt\u00fara pl\u00e1nu a jej slab\u00e9 miesta u\u017e s\u00fa rozlo\u017een\u00e9 a vidite\u013en\u00e9 \u2014 pre\u010do by ich nemohli zv\u00fdrazni\u0165 v\u00fdvoj\u00e1rovi a nevysvetli\u0165 'po slovensky'?<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/0e7157a09f7f5707e769cc1d6a8f3af8.png\" style=\"display:block;margin: 0 auto;\" \/>Tak\u00e9to \u0161abl\u00f3ny odpor\u00fa\u010dan\u00ed sme u\u017e zhroma\u017edili desa\u0165 a\u017e dvadsa\u0165.<\/p>\n<h3>Riadkov\u00fd profiler dotazu<\/h3>\n<p>\nTeraz, ak na analyzovan\u00fd pl\u00e1n superponujeme p\u00f4vodn\u00fd dotaz, m\u00f4\u017eeme vidie\u0165, ko\u013eko \u010dasu trvalo na ka\u017ed\u00fd jednotliv\u00fd oper\u00e1tor \u2014 pribli\u017ene takto:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/0766d331798d529363d10006ace211f3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 alebo dokonca takto:<\/p>\n<p><img decoding=\"async\" alt=\"O \u010dom ml\u010d\u00ed EXPLAIN a ako ho prin\u00fati\u0165 porozpr\u00e1va\u0165 sa\" src=\"\/wp-content\/uploads\/2020\/03\/4efd23d84792c5a7f54b40e86ff17353.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Vkladanie parametrov do dotazu<\/h3>\n<p>\nAk ste 'pripojili' k pl\u00e1nu nielen dotaz, ale aj jeho parametre z DETAIL riadku logu, m\u00f4\u017eete ho dodato\u010dne skop\u00edrova\u0165 v jednom z variantov:<\/p>\n<ul>\n<li>s vlo\u017een\u00edm hodn\u00f4t do dotazu<br \/>\nna okam\u017eit\u00e9 vykonanie na svojej datab\u00e1ze a \u010fal\u0161iu profil\u00e1ciu<\/p>\n<pre><code class=\"sql\">SELECT 'const', 'param'::text;<\/code><\/pre>\n<\/li>\n<li>s vlo\u017een\u00edm hodn\u00f4t cez PREPARE\/EXECUTE<br \/>\nna simul\u00e1ciu fungovania pl\u00e1nova\u010da, ke\u010f m\u00f4\u017ee by\u0165 parametrov\u00e1 \u010das\u0165 ignorovan\u00e1 \u2014 napr\u00edklad pri pr\u00e1ci s delen\u00fdmi tabu\u013ekami<\/p>\n<pre><code class=\"sql\">DEALLOCATE ALL;\nPREPARE q(text) AS SELECT 'const', $1::text;\nEXECUTE q('param'::text);\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<p><\/p>\n<h3>Arch\u00edv pl\u00e1nov<\/h3>\n<p>\nVkladajte, analyzujte, zdie\u013eajte s kolegami! Pl\u00e1ny zostan\u00fa v arch\u00edve a nesk\u00f4r sa k nim m\u00f4\u017eete vr\u00e1ti\u0165: <noindex><a rel=\"nofollow\" href=\"https:\/\/explain.tensor.ru\/archive\/\">explain.tensor.ru\/archive<\/a><\/noindex><\/p>\n<p>Ale ak nechcete, aby v\u00e1\u0161 pl\u00e1n videli in\u00ed, nezabudnite za\u0161krtn\u00fa\u0165 pol\u00ed\u010dko \u201enepublikova\u0165 v arch\u00edve\u201d.<\/p>\n<p>V nasleduj\u00facich \u010dl\u00e1nkoch poviem o t\u00fdch \u0165a\u017ekostiach a rie\u0161eniach, ktor\u00e9 vznikaj\u00fa pri anal\u00fdze pl\u00e1nu.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/tensor\/blog\/477624\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 DBA \u0438\u043b\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u2014 \u043a \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u0443 \u043f\u043e PostgreSQL, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e: \u00ab\u041f\u043e\u0447\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 \u0442\u0430\u043a \u0434\u043e\u043b\u0433\u043e?\u00bb \u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0438\u0447\u0438\u043d: \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c JOIN \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 CTE \u043f\u043e \u043f\u0430\u0440\u0435 \u0434\u0435\u0441\u044f\u0442\u043a\u043e\u0432 \u0442\u044b\u0441\u044f\u0447 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043d\u0435\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0435\u0441\u043b\u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u0436\u0435 \u0441\u0438\u043b\u044c\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75679,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-75678","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 DBA \u0438\u043b\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u2014 \u043a \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u0443 \u043f\u043e PostgreSQL, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e: \u00ab\u041f\u043e\u0447\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 \u0442\u0430\u043a \u0434\u043e\u043b\u0433\u043e?\u00bb .\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e \u0447\u0435\u043c \u043c\u043e\u043b\u0447\u0438\u0442 EXPLAIN, \u0438 \u043a\u0430\u043a \u0435\u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 DBA \u0438\u043b\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u2014 \u043a \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u0443 \u043f\u043e PostgreSQL, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e: \u00ab\u041f\u043e\u0447\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 \u0442\u0430\u043a \u0434\u043e\u043b\u0433\u043e?\u00bb .\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-27T17:42:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-27T17:42:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47O \u010dom ml\u010d\u00ed EXPLAIN a ako s n\u00edm hovori\u0165 | ProHoster","description":"Klasick\u00e1 ot\u00e1zka, s ktorou prich\u00e1dza v\u00fdvoj\u00e1r za svoj\u00edm DBA alebo vlastn\u00edk biznisu \u2014 ku konzultantovi pre PostgreSQL, takmer v\u017edy znie rovnako: \u201ePre\u010do dotazy trvaj\u00fa tak dlho na spracovanie?\u201d .","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e \u0447\u0435\u043c \u043c\u043e\u043b\u0447\u0438\u0442 EXPLAIN, \u0438 \u043a\u0430\u043a \u0435\u0433\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c | ProHoster","og:description":"\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043a \u0441\u0432\u043e\u0435\u043c\u0443 DBA \u0438\u043b\u0438 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 \u0431\u0438\u0437\u043d\u0435\u0441\u0430 \u2014 \u043a \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442\u0443 \u043f\u043e PostgreSQL, \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0432\u0443\u0447\u0438\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e: \u00ab\u041f\u043e\u0447\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u0437\u0435 \u0442\u0430\u043a \u0434\u043e\u043b\u0433\u043e?\u00bb .","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-27T17:42:27+00:00","article:modified_time":"2020-03-27T17:42:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75678","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:51:29","updated":"2022-09-30 01:03:00","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/75678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=75678"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/75678\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/75679"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=75678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=75678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=75678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}