{"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\/sv\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit","title":{"rendered":"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Den klassiska fr\u00e5gan som en utvecklare st\u00e4ller till sin DBA eller aff\u00e4rsinnehavare - till en PostgreSQL-konsult - l\u00e5ter n\u00e4stan alltid likadan: <i>\"Varf\u00f6r tar fr\u00e5gorna s\u00e5 l\u00e5ng tid att k\u00f6ra p\u00e5 databasen?\"<\/i><\/p>\n<p>Ett traditionellt set av orsaker:<\/p>\n<ul>\n<li><b>ineffektiv algoritm<\/b><br \/>\nn\u00e4r du best\u00e4mde dig f\u00f6r att g\u00f6ra JOIN av flera CTE med ett par tiotusentals poster<\/li>\n<li><b>ointressant statistik<\/b><br \/>\nom den faktiska datadistributionen i tabellen redan avviker kraftigt fr\u00e5n den som samlades in av ANALYZE senast<\/li>\n<li><b>\"flaskhals\" p\u00e5 resurser<\/b><br \/>\noch det finns inte tillr\u00e4ckligt med tilldelade CPU-resurser, minnet pumpas hela tiden eller disken h\u00e4nger inte med alla databasens \"\u00f6nskem\u00e5l\"<\/li>\n<li><b>l\u00e5ser<\/b> fr\u00e5n konkurrerande processer<\/li>\n<\/ul>\n<p>\nOch om l\u00e5sningar \u00e4r sv\u00e5ra att f\u00e5nga och analysera, r\u00e4cker det med att <b>fr\u00e5geplanen<\/b>, som kan erh\u00e5llas med hj\u00e4lp av <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/12\/using-explain\">kommandot EXPLAIN<\/a><\/noindex> (<i>\u00e4r det b\u00e4st att genast anv\u00e4nda EXPLAIN (ANALYZE, BUFFERS) ...<\/i>) eller <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/12\/auto-explain\">modulen auto_explain<\/a><\/noindex>.<\/p>\n<p>Men som sagt i samma dokumentation, <\/p>\n<blockquote><p>\"Att f\u00f6rst\u00e5 planen \u00e4r en konst, och f\u00f6r att beh\u00e4rska den kr\u00e4vs viss erfarenhet, ...\"<\/p><\/blockquote>\n<p> Men man kan klara sig utan den, om man anv\u00e4nder ett l\u00e4mpligt verktyg!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nHur ser en fr\u00e5geplan ut? S\u00e5 h\u00e4r:<\/p>\n<pre><code class=\"plaintext\">Index Scan using pg_class_relname_nsp_index on pg_class (actual time=0.049..0.050 rows=1 loops=1)\n  Index Cond: (relname = $1)\n  Filter: (oid = $0)\n  Buffers: shared hit=4\n  InitPlan 1 (returns $0,$1)\n    -&gt;  Limit (actual time=0.019..0.020 rows=1 loops=1)\n          Buffers: shared hit=1\n          -&gt;  Seq Scan on pg_class pg_class_1 (actual time=0.015..0.015 rows=1 loops=1)\n                Filter: (relkind = 'r'::\"char\")\n                Rows Removed by Filter: 5\n                Buffers: shared hit=1<\/code><\/pre>\n<p>\neller s\u00e5 h\u00e4r:<\/p>\n<pre><code class=\"plaintext\">\"Append  (cost=868.60..878.95 rows=2 width=233) (actual time=0.024..0.144 rows=2 loops=1)\"\n\"  Buffers: shared hit=3\"\n\"  CTE cl\"\n\"    -&gt;  Seq Scan on pg_class  (cost=0.00..868.60 rows=9972 width=537) (actual time=0.016..0.042 rows=101 loops=1)\"\n\"          Buffers: shared hit=3\"\n\"  -&gt;  Limit  (cost=0.00..0.10 rows=1 width=233) (actual time=0.023..0.024 rows=1 loops=1)\"\n\"        Buffers: shared hit=1\"\n\"        -&gt;  CTE Scan on cl  (cost=0.00..997.20 rows=9972 width=233) (actual time=0.021..0.021 rows=1 loops=1)\"\n\"              Buffers: shared hit=1\"\n\"  -&gt;  Limit  (cost=10.00..10.10 rows=1 width=233) (actual time=0.117..0.118 rows=1 loops=1)\"\n\"        Buffers: shared hit=2\"\n\"        -&gt;  CTE Scan on cl cl_1  (cost=0.00..997.20 rows=9972 width=233) (actual time=0.001..0.104 rows=101 loops=1)\"\n\"              Buffers: shared hit=2\"\n\"Planning Time: 0.634 ms\"\n\"Execution Time: 0.248 ms\"<\/code><\/pre>\n<p>\nMen att l\u00e4sa planen i textform \"fr\u00e5n papperet\" \u00e4r mycket sv\u00e5rt och o\u00f6versk\u00e5dligt:<\/p>\n<ul>\n<li>i noden visas <b>summan av resurser f\u00f6r undertr\u00e4det<\/b><br \/>\nF\u00f6r att f\u00f6rst\u00e5 hur mycket tid som gick \u00e5t f\u00f6r att utf\u00f6ra en specifik nod eller hur mycket denna l\u00e4sning fr\u00e5n tabellen h\u00e4mtade data fr\u00e5n disken - m\u00e5ste man p\u00e5 n\u00e5got s\u00e4tt dra det ena fr\u00e5n det andra.<\/li>\n<li>Nodens tid \u00e4r n\u00f6dv\u00e4ndig. <b>Att multiplicera med loops.<\/b><br \/>\nJa, subtraktion \u00e4r inte den sv\u00e5raste operationen att g\u00f6ra \"i huvudet\" - eftersom den utf\u00f6rda tiden anges som genomsnittlig f\u00f6r en nods exekvering, och det kan finnas hundratals.<\/li>\n<li>Och allt detta tillsammans g\u00f6r det sv\u00e5rt att besvara den viktigaste fr\u00e5gan - s\u00e5 vem \u00e4r det? <b>\"Den svagaste l\u00e4nken\".<\/b>?<\/li>\n<\/ul>\n<p>\nN\u00e4r vi f\u00f6rs\u00f6kte f\u00f6rklara allt detta f\u00f6r flera hundra av v\u00e5ra utvecklare ins\u00e5g vi att det ser ut ungef\u00e4r s\u00e5 h\u00e4r fr\u00e5n sidan:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/abb07e902639b5ec245851aa4a0edb58.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAllts\u00e5, vi beh\u00f6ver...<\/p>\n<h2>Verktyget<\/h2>\n<p>\nI den har vi f\u00f6rs\u00f6kt samla alla nyckelmekanismer som hj\u00e4lper till med planen och fr\u00e5gan om \"vem som \u00e4r skyldig och vad man ska g\u00f6ra\". Och \u00e4ven dela med oss av v\u00e5r erfarenhet med samh\u00e4llet.<br \/>\nM\u00f6t och anv\u00e4nd - <noindex><a rel=\"nofollow\" href=\"https:\/\/explain.tensor.ru\/\">explain.tensor.ru<\/a><\/noindex> <\/p>\n<h3>\u00d6versk\u00e5dlighet av planer.<\/h3>\n<p>\n\u00c4r det l\u00e4tt att f\u00f6rst\u00e5 planen n\u00e4r den ser ut s\u00e5 h\u00e4r?<\/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>\nInte s\u00e5 mycket.<\/p>\n<p>Men s\u00e5 h\u00e4r, <b>i f\u00f6rkortad form,<\/b>, n\u00e4r de nyckeltal \u00e4r separerade - \u00e4r det redan mycket tydligare:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/18404ce800de847f1934ac2c7fef10be.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMen om planen \u00e4r mer komplex - kommer <b>piechart av tidens f\u00f6rdelning<\/b> f\u00f6r noder:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/ca9fdd07278801e4f3ad15e997efc1a0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOch f\u00f6r de mest komplexa alternativen kommer <b>exekveringsdiagrammet<\/b>:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/c03f358858206d7ccae20fd8142baa8c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTill exempel kan det f\u00f6rekomma tillr\u00e4ckligt otypiska situationer d\u00e4r planen kan ha mer \u00e4n en faktisk rot:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/ea4f3f498737e9cc3f8f40c16a5bd1d7.png\" style=\"display:block;margin: 0 auto;\" \/><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/267273e8491d6b4403442672612c33ff.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Strukturella tips.<\/h3>\n<p>\nMen om hela planens struktur och dess svaga punkter redan \u00e4r utlagda och synliga - varf\u00f6r inte markera dem f\u00f6r utvecklaren och f\u00f6rklara \"p\u00e5 ett l\u00e4ttbegripligt spr\u00e5k\"?<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/0e7157a09f7f5707e769cc1d6a8f3af8.png\" style=\"display:block;margin: 0 auto;\" \/>Vi har redan samlat ett par dussin s\u00e5dana rekommendationsmallar.<\/p>\n<h3>Radprofilering av fr\u00e5gor.<\/h3>\n<p>\nNu, om vi l\u00e4gger den ursprungliga fr\u00e5gan ovanp\u00e5 den analyserade planen, kan vi se hur mycket tid som gick \u00e5t f\u00f6r varje enskild operator - ungef\u00e4r s\u00e5 h\u00e4r:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/0766d331798d529363d10006ace211f3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026 eller till och med s\u00e5 h\u00e4r:<\/p>\n<p><img decoding=\"async\" alt=\"Vad EXPLAIN tiger om, och hur man f\u00e5r den att prata\" src=\"\/wp-content\/uploads\/2020\/03\/4efd23d84792c5a7f54b40e86ff17353.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Parametrisering av fr\u00e5gan.<\/h3>\n<p>\nOm du \"f\u00e4stde\" inte bara fr\u00e5gan till planen utan ocks\u00e5 dess parametrar fr\u00e5n DETAIL-raden i loggen, kan du kopiera den p\u00e5 ytterligare ett s\u00e4tt:<\/p>\n<ul>\n<li>med parametrisering av v\u00e4rden i fr\u00e5gan.<br \/>\nf\u00f6r att utf\u00f6ra den direkt p\u00e5 din databas och vidare profilera.<\/p>\n<pre><code class=\"sql\">SELECT 'const', 'param'::text;<\/code><\/pre>\n<\/li>\n<li>med parametrisering av v\u00e4rden genom PREPARE\/EXECUTE.<br \/>\nf\u00f6r att simulera schemal\u00e4ggarens arbete n\u00e4r den parametriska delen kan ignoreras \u2014 till exempel vid arbete med partitionerade tabeller<\/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>Planarkiv<\/h3>\n<p>\nKlistra in, analysera, dela med kollegor! Planerna kommer att f\u00f6rbli i arkivet och du kan \u00e5terkomma till dem senare: <noindex><a rel=\"nofollow\" href=\"https:\/\/explain.tensor.ru\/archive\/\">explain.tensor.ru\/archive<\/a><\/noindex><\/p>\n<p>Men om du inte vill att andra ska se din plan, kom ih\u00e5g att kryssa i rutan \"publicera inte i arkivet\".<\/p>\n<p>I kommande artiklar kommer jag att ber\u00e4tta om de sv\u00e5righeter och l\u00f6sningar som uppst\u00e5r vid analys av planen.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Vad EXPLAIN tystar om, och hur man f\u00e5r det att prata | ProHoster","description":"En klassisk fr\u00e5ga som en utvecklare st\u00e4ller till sin DBA eller aff\u00e4rs\u00e4gare \u2014 till en PostgreSQL-konsult \u2014 l\u00e5ter n\u00e4stan alltid likadant: \"Varf\u00f6r tar fr\u00e5gorna s\u00e5 l\u00e5ng tid att k\u00f6ra?\".","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/o-chem-molchit-explain-i-kak-ego-razgovorit","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/75678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=75678"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/75678\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/75679"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=75678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=75678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=75678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}