{"id":30767,"date":"2019-10-31T21:37:21","date_gmt":"2019-10-31T18:37:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\/"},"modified":"2019-10-31T21:37:21","modified_gmt":"2019-10-31T18:37:21","slug":"sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","title":{"rendered":"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/6960ab96e829332fbde0b2aebd79b48a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Filosoofiline sissejuhatus<\/h3>\n<p>\nNagu teada, on olemas ainult kaks meetodit probleemide lahendamiseks:<\/p>\n<ol>\n<li>Anal\u00fc\u00fcsi meetod v\u00f5i deduktsioonimeetod, ehk \u00fcldisest spetsiifiliseks.<\/li>\n<li>S\u00fcntesi meetod v\u00f5i induktsioonimeetod, ehk spetsiifilisest \u00fcldiseks.<\/li>\n<\/ol>\n<p>\nProbleemi \"andmebaasi j\u00f5udluse parandamine\" lahendamiseks v\u00f5ib see v\u00e4lja n\u00e4ha j\u00e4rgmiselt.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b>Anal\u00fc\u00fcs<\/b> \u2014 lahendame probleemi osadeks ja p\u00fc\u00fcame neid lahendades parandada andmebaasi j\u00f5udlust tervikuna.<\/p>\n<p>Praktikas n\u00e4eb anal\u00fc\u00fcs enamasti v\u00e4lja j\u00e4rgmiselt:<\/p>\n<ul>\n<li>Tekkib probleem (j\u00f5udlusinsident) <\/li>\n<li>Kogume statistilist teavet andmebaasi seisundi kohta<\/li>\n<li>Otsime kitsaskohti<\/li>\n<li>Lahendame kitsaskohtade probleemid<\/li>\n<\/ul>\n<p>\n<b>Andmebaasi kitsaskohad<\/b> \u2014 infrastruktuur (CPU, m\u00e4lu, kettad, v\u00f5rk, ops\u00fcsteem), seaded (postgresql.conf), p\u00e4ringud:<\/p>\n<p><b>Infrastruktuur<\/b>: inseneril on peaaegu nullv\u00f5imalusi m\u00f5jutada ja muuta.<\/p>\n<p><b>Andmebaasi seaded<\/b>: muutmise v\u00f5imalused on veidi suuremad kui eelmisel juhul, kuid reeglina siiski \u00fcsna keerukad, eriti pilvteenustes.<\/p>\n<p><b>P\u00e4ringud<\/b> andmebaasile: <u>ainus man\u00f6\u00f6verdusruum<\/u>.<\/p>\n<p><b>S\u00fcntes<\/b> \u2014 parandame \u00fcksikute osade j\u00f5udlust, oodates, et seet\u00f5ttu parandub ka andmebaasi j\u00f5udlus. <\/p>\n<h3>L\u00fc\u00fcriline sissejuhatus v\u00f5i miks seda k\u00f5ike on vaja <\/h3>\n<p>\nKuidas toimub j\u00f5udlusinsidentide lahendamise protsess, kui andmebaasi j\u00f5udlust ei j\u00e4lgita: <\/p>\n<p>Klient - \"meil on k\u00f5ik halb, aeglane, tehke meile h\u00e4sti\"<br \/>\nInsener - \"halb, mis see t\u00e4hendab?\"<br \/>\nKlient - \"niimoodi nagu praegu (tund tagasi, eile, eelmisel korral oli), aeglaselt\"<br \/>\nInsener \u2013 \"millal oli hea?\"<br \/>\nKlient \u2013 \"n\u00e4dal (kaks n\u00e4dalat) tagasi oli h\u00e4sti.\" (See oli vedamine)<br \/>\nKlient \u2013 \"ja ma ei m\u00e4leta, millal oli hea, aga praegu on halb\" (Tavaline vastus)<\/p>\n<p>Tulemuseks on klassikaline pilt:<\/p>\n<p><img decoding=\"async\" alt=\"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/836777a3f813b1f5c36cc23aa5af6ad0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Kes on s\u00fc\u00fcdi ja mida teha?<\/h3>\n<p>\nEsimesele k\u00fcsimusele on kergem vastata \u2014 s\u00fc\u00fcdi on alati DBA insener. <\/p>\n<p>Teisele k\u00fcsimusele on samuti mitte liiga keeruline vastata \u2014 tuleb rakendada andmebaasi j\u00f5udluse j\u00e4lgimise s\u00fcsteem.<\/p>\n<p>Tekkib esimene k\u00fcsimus \u2014 <b>mida j\u00e4lgida?<\/b><\/p>\n<p><b>Tee 1. J\u00e4lgime K\u00d5IKE<\/b><\/p>\n<p><img decoding=\"async\" alt=\"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/9aa90bcce679e67d1749e270828cf792.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCPU koormust, diskilugemise\/kirjutamise operatsioonide arvu, eraldatud m\u00e4lu suurust ja veel megatonni erinevaid loendureid, mida iga natukenegi t\u00f6\u00f6tav j\u00e4lgimise s\u00fcsteem v\u00f5ib pakkuda.<\/p>\n<p>Tulemuseks on hulk graafikuid, kokkuv\u00f5tteid ja pidevad teavitused e-posti kaudu, mis samas koormavad inseneri, kes peab lahendama rohkearvulisi sarnaseid tikette, mille sisu on enamasti standardne - \"Ajutine probleem. Tegutsemine ei ole vajalik\". Kuid k\u00f5ik on h\u00f5ivatud ja alati on midagi, mida kliendile n\u00e4idata - t\u00f6\u00f6 k\u00e4ib.<\/p>\n<h3>Teine tee. J\u00e4lgida ainult seda, mis on vajalik, ja mitte j\u00e4lgida seda, mis ei ole vajalik.<\/h3>\n<p>\nSaame j\u00e4lgida natuke teisiti - ainult isendite ja s\u00fcndmuste p\u00f5hjal:<\/p>\n<ul>\n<li>Kus insener DBA saab midagi m\u00f5jutada.<\/li>\n<li>Kus on olemas tegevusalgoritm, kui s\u00fcndmus v\u00f5i isendi muudetakse.<\/li>\n<\/ul>\n<p>\nV\u00f5ttes arvesse seda eeldust ja meenutades \"<b>Filosoofiline sissejuhatus<\/b>\" eesm\u00e4rgiga v\u00e4ltida regulaarset kordamist \"<b>L\u00fc\u00fcriline sissejuhatus v\u00f5i miks seda k\u00f5ike on vaja<\/b>\" oleks m\u00f5istlik j\u00e4lgida \u00fcksikute p\u00e4ringute j\u00f5udlust, et optimeerida ja anal\u00fc\u00fcsida, mis l\u00f5puks peaks parandama kogu andmebaasi j\u00f5udlust. <\/p>\n<p>Kuid selleks, et parandada raskesti t\u00e4idetavat p\u00e4ringut, mis m\u00f5jutab kogu andmebaasi j\u00f5udlust, tuleb see esmalt leida. <\/p>\n<p>Seega tekib kaks omavahel seotud k\u00fcsimust:<\/p>\n<ul>\n<li>kuidas m\u00e4\u00e4ratleda, mis on raske p\u00e4ring <\/li>\n<li>kuidas otsida raskesti t\u00e4idetavaid p\u00e4ringuid.<\/li>\n<\/ul>\n<p>\nIlmselgelt on raske p\u00e4ring see, mis kasutab palju s\u00fcsteemiressursse, et tulemust saada.<\/p>\n<p><b>Liigume teise k\u00fcsimuse juurde - kuidas otsida ja seej\u00e4rel j\u00e4lgida raskesti t\u00e4idetavaid p\u00e4ringuid?<\/b><\/p>\n<h3>Millised on p\u00e4ringute j\u00e4lgimise v\u00f5imalused PostgreSQL-is? <\/h3>\n<p>\nV\u00f5rreldes Oracle'iga on v\u00f5imalusi v\u00e4he, kuid siiski on midagi v\u00f5imalik teha.<\/p>\n<p><img decoding=\"async\" alt=\"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/995419a92c0b340512bef6221e76822f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>PG_STAT_STATEMENTS<\/h3>\n<p>\nRaskete p\u00e4ringute leidmiseks ja j\u00e4lgimiseks PostgreSQL-is on m\u00f5eldud standardne laiendus pg_stat_statements.<\/p>\n<p>P\u00e4rast laienduse installimist ilmub sihtandmebaasis samanimeline vaade, mida tuleb kasutada j\u00e4lgimise eesm\u00e4rkidel.<\/p>\n<p>Sihtveergude pg_stat_statements m\u00e4\u00e4ramine j\u00e4lgimiss\u00fcsteemi \u00fclesehitamiseks:<\/p>\n<ul>\n<li><b>queryid <\/b>Sisemine hash-kood, mis on arvutatud k\u00e4su anal\u00fc\u00fcsi puu p\u00f5hjal.<\/li>\n<li><b>max_time <\/b>Maksimaalne aeg, mis on kulunud k\u00e4sule, millisekundites.<\/li>\n<\/ul>\n<p>\nKogudes ja kasutades statistikat nende kahe veeru p\u00f5hjal, saab luua j\u00e4lgimiss\u00fcsteemi.<\/p>\n<h3>Kuidas kasutada pg_stat_statements PostgreSQL-i j\u00f5udluse j\u00e4lgimiseks<\/h3>\n<p>\n<img decoding=\"async\" alt=\"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/fbec099eb6ff2de2fb3c90c7cbcf9505.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e4ringute j\u00f5udluse j\u00e4lgimiseks kasutatakse:<br \/>\nSihtandmebaasis - vaade pg_stat_statements. <br \/>\nPoolt <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-los-angeles\/\"   title=\"serverilt\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3479\">serverilt<\/a> ja j\u00e4lgimisandmebaasi - bash-skriptide kogumit ja teenindustabeleid.<\/p>\n<h3>1. etapp \u2014 statistiliste andmete kogumine<\/h3>\n<p>\nMonitooringuhostil k\u00e4ivitatakse regulaarselt skript, mis kopeerib pg_stat_statements vaate sisu sihtandmebaasist monitooringu andmebaasi pg_stat_history tabelisse. <\/p>\n<p>Nii moodustatakse individuaalsete p\u00e4ringute t\u00e4itmise ajalugu, mida saab kasutada tulemuslikkuse aruannete koostamiseks ja m\u00f5\u00f5dikute seadmiseks.<\/p>\n<h3>2. etapp \u2014 tulemuslikkuse m\u00f5\u00f5dikute seadmine<\/h3>\n<p>\nKogutud andmete p\u00f5hjal valime p\u00e4ringud, mille t\u00e4itmine on kliendi (rakenduse) jaoks k\u00f5ige kriitilisem\/olulisem. Koosk\u00f5lastades tellijaga, seame tulemuslikkuse m\u00f5\u00f5dikute v\u00e4\u00e4rtused, kasutades queryid ja max_time v\u00e4ljade v\u00e4\u00e4rtusi. <\/p>\n<h3>Tulemus \u2014 tulemuslikkuse monitooringu alustamine<\/h3>\n<p><\/p>\n<ol>\n<li>Monitooringu skript k\u00e4ivitamisel kontrollib konfigureeritud tulemuslikkuse m\u00f5\u00f5dikuid, v\u00f5rreldes m\u00f5\u00f5diku max_time v\u00e4\u00e4rtust sihtandmebaasi pg_stat_statements vaate v\u00e4\u00e4rtustega.<\/li>\n<li>Kui sihtandmebaasi v\u00e4\u00e4rtus \u00fcletab m\u00f5\u00f5diku v\u00e4\u00e4rtuse \u2014 genereeritakse hoiatus (insident piletis\u00fcsteemis).<\/li>\n<\/ol>\n<p><\/p>\n<h3>Lisav\u00f5imalus 1<\/h3>\n<p>\n<b>P\u00e4ringute t\u00e4idete plaanide ajalugu<\/b><\/p>\n<p>Tulemuslikkuse probleemide lahendamiseks on v\u00e4ga kasulik omada p\u00e4ringute t\u00e4idete plaanide muutumise ajalugu. <\/p>\n<p>Ajaloo s\u00e4ilitamiseks kasutatakse teenindustabelit log_query. Tabelit t\u00e4idetakse PostgreSQL-i laaditud logifaili anal\u00fc\u00fcsi k\u00e4igus. Kuna logifaili erinevalt pg_stat_statements vaatest sisaldab see t\u00e4isteksti koos t\u00e4itmise parameetrite v\u00e4\u00e4rtustega, mitte normaliseeritud teksti, on v\u00f5imalik salvestada mitte ainult p\u00e4ringute aega ja kestust, vaid ka hetkeseisuga t\u00e4idete plaane.<\/p>\n<h3>Lisav\u00f5imalus 2<\/h3>\n<p>\n<b>Pideva tulemuslikkuse parandamise protsess<\/b><\/p>\n<p>Eristatud p\u00e4ringute monitooring ei ole \u00fcldiselt m\u00f5eldud andmebaasi tervikliku tulemuslikkuse pidevaks parandamiseks, kuna see kontrollib ja lahendab tulemuslikkuse probleeme ainult individuaalsete p\u00e4ringute jaoks. Siiski on v\u00f5imalik metoodikat laiendada ja seada p\u00e4ringute monitooring k\u00f5igi andmebaaside jaoks. <\/p>\n<p>Selleks tuleb lisada t\u00e4iendavad tulemuslikkuse m\u00f5\u00f5dikud:<\/p>\n<ul>\n<li>Viimase n\u00e4dala jooksul<\/li>\n<li>Aluse perioodi jooksul<\/li>\n<\/ul>\n<p>\nSkript valib p\u00e4ringud pg_stat_statements vaate p\u00f5hjal sihtandmebaasis ja v\u00f5rreldab max_time v\u00e4\u00e4rtust keskmise max_time-ga, esimese puhul viimase p\u00e4evade v\u00f5i valitud ajavahemiku (baseline) osas, teise puhul.<\/p>\n<p>Seega, kui igasuguste p\u00e4ringute j\u00f5udlus halveneb, siis teade genereeritakse automaatselt, ilma k\u00e4sitsi aruannete anal\u00fc\u00fcsita. <\/p>\n<h3>Mis asja on s\u00fcnteesi juures?<\/h3>\n<p>\nNagu kirjeldatud l\u00e4henemises, parendame s\u00fcsteemi \u00fcldiselt, parandades selle erinevaid osi, nagu s\u00fcnteesimismeetod seda ette n\u00e4eb.<\/p>\n<ul>\n<li>Andmebaasi poolt t\u00e4idetav p\u00e4ring \u2013 tees<\/li>\n<li>Muudetud p\u00e4ring \u2013 antitees<\/li>\n<li>S\u00fcsteemi staatuse muutmine \u2013 s\u00fcntees<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"S\u00fcntees kui \u00fcks meetod PostgreSQL t\u00f6\u00f6kindluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/088abb9900319353a42d236d26a20a2c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>S\u00fcsteemi areng<\/h3>\n<p><\/p>\n<ul>\n<li>Statistika t\u00e4iendamine, lisades ajaloo pg_stat_activity s\u00fcsteemivaatesse<\/li>\n<li>Statistika t\u00e4iendamine, lisades ajaloo eraldi tabelite statistikale, mis osalevad p\u00e4ringutes <\/li>\n<li>Integreerimine AWS pilve monitoreerimiss\u00fcsteemiga<\/li>\n<li>Ja veel, midagi v\u00f5iks v\u00e4lja m\u00f5elda\u2026<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444988\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435 \u0432\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447: \u041c\u0435\u0442\u043e\u0434 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u0434\u0435\u0434\u0443\u043a\u0446\u0438\u0438, \u0438\u043b\u0438 \u043e\u0442 \u043e\u0431\u0449\u0435\u0433\u043e \u043a \u0447\u0430\u0441\u0442\u043d\u043e\u043c\u0443. \u041c\u0435\u0442\u043e\u0434 \u0441\u0438\u043d\u0442\u0435\u0437\u0430 \u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u0438\u043d\u0434\u0443\u043a\u0446\u0438\u0438, \u0438\u043b\u0438 \u043e\u0442 \u0447\u0430\u0441\u0442\u043d\u043e\u0433\u043e \u043a \u043e\u0431\u0449\u0435\u043c\u0443. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u201c\u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u201d \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0410\u043d\u0430\u043b\u0438\u0437 \u2014 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0438 \u0440\u0435\u0448\u0430\u044f \u0438\u0445 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":22752,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-30767","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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435.\" \/>\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\/et\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\u0421\u0438\u043d\u0442\u0435\u0437 \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PostgreSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\" \/>\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=\"2019-10-31T18:37:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:37:21+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\udd47S\u00fcntees kui \u00fcks meetod PostgreSQL j\u00f5udluse parandamiseks | ProHoster","description":"Filosoofiline.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\u0421\u0438\u043d\u0442\u0435\u0437 \u043a\u0430\u043a \u043e\u0434\u0438\u043d \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 PostgreSQL | ProHoster","og:description":"\u0424\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u043e\u0435.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","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":"2019-10-31T18:37:21+00:00","article:modified_time":"2019-10-31T18:37:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"30767","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":"2026-02-22 15:31:13","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:29:57","updated":"2026-02-22 15:31:13","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=30767"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30767\/revisions"}],"predecessor-version":[{"id":162005,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/30767\/revisions\/162005"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/22752"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=30767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=30767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=30767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}