{"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\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse parandamiseks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"S\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse 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 kaks meetodit probleemide lahendamiseks:<\/p>\n<ol>\n<li>Anal\u00fc\u00fcsimeetod v\u00f5i deduktiivne meetod, ehk \u00fcldisest eriliseks.<\/li>\n<li>S\u00fcntesimeetod v\u00f5i induktiivne meetod, ehk erilisest \u00fcldiseks.<\/li>\n<\/ol>\n<p>\nProbleemi \u201eandmebaasi j\u00f5udluse parandamine\u201c lahendamiseks v\u00f5iks 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 jagame probleemi osadeks ja p\u00fc\u00fcame neid lahendades \u00fcldiselt andmebaasi j\u00f5udlust parandada.<\/p>\n<p>Praktikas n\u00e4eb anal\u00fc\u00fcs v\u00e4lja umbes selline:<\/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 kitsaskohtadega seotud probleemid<\/li>\n<\/ul>\n<p>\n<b>Andmebaasi kitsaskohad<\/b> \u2014 infrastruktuur (CPU, m\u00e4lu, kettad, v\u00f5rk, operatsioonis\u00fcsteem), seaded (postgresql.conf), p\u00e4ringud:<\/p>\n<p><b>Infrastruktuur<\/b>: inseneri muutmisv\u00f5imalused on peaaegu null.<\/p>\n<p><b>Andmebaasi seadistused<\/b>: muutmisv\u00f5imalused on veidi suuremad kui eelmisel juhul, kuid tavaliselt siiski \u00fcsna keerulised, eriti pilveteenustes.<\/p>\n<p><b>P\u00e4ringud<\/b> andmebaasile: <u>ainus man\u00f6\u00f6verdusala<\/u>.<\/p>\n<p><b>S\u00fcntes<\/b> \u2014 parandame \u00fcksikute osade j\u00f5udlust, lootes, et andmebaasi j\u00f5udlus paraneb. <\/p>\n<h3>L\u00fc\u00fcriline sissejuhatus v\u00f5i miks seda k\u00f5ike vaja on <\/h3>\n<p>\nKuidas toimub j\u00f5udlust puudutavate probleemide lahendamise protsess, kui andmebaasi j\u00f5udlust ei j\u00e4lgita: <\/p>\n<p>Kliendi seisukoht - \"meil on k\u00f5ik halvasti, on aeglane, tehke meile h\u00e4sti\"<br \/>\nInsener - \"aga mis on halb?\"<br \/>\nKliendi seisukoht \u2013 \"nii on praegu (tund tagasi, eile, eelmisel korral oli), aeglane\"<br \/>\nInsener \u2013 \"aga millal oli h\u00e4sti?\"<br \/>\nKliendi seisukoht \u2013 \"n\u00e4dal (kaks n\u00e4dalat) tagasi oli p\u00e4ris h\u00e4sti.\" (See oli \u00f5nneasi)<br \/>\nKliendi seisukoht \u2013 \"aga ma ei m\u00e4leta, millal oli h\u00e4sti, aga praegu on halb\" (Tavaline vastus)<\/p>\n<p>Tulemusena saame klassikalise pildi:<\/p>\n<p><img decoding=\"async\" alt=\"S\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse 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>\nEsimese k\u00fcsimuse puhul on vastus k\u00f5ige lihtsam \u2014 s\u00fc\u00fcdi on alati DBA insener. <\/p>\n<p>Teise osa k\u00fcsimusele on vastus samuti \u00fcsna lihtne \u2014 on vaja rakendada andmebaasi j\u00f5udluse j\u00e4lgimise s\u00fcsteem.<\/p>\n<p>K\u00fcsimus tekib \u2014 <b>mida j\u00e4lgida?<\/b><\/p>\n<p><b>Teekond 1. J\u00e4lgime K\u00d5IKE<\/b><\/p>\n<p><img decoding=\"async\" alt=\"S\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/9aa90bcce679e67d1749e270828cf792.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCPU koormust, kettasalvestuse lugemis-\/kirjutamisoperatsioonide arvu, reserveeritud m\u00e4lu suurust ja veel meeletult erinevaid m\u00f5\u00f5dikuid, mida igasugused t\u00f6\u00f6tavad j\u00e4lgimiss\u00fcsteemid v\u00f5ivad pakkuda.<\/p>\n<p>Tulemusena tekib hulk graafikuid, kokkuv\u00f5tteid ja pidevad teavitused e-postile ning 100% h\u00f5ivatuse t\u00f5ttu insener, kes lahendab hulga sarnaseid pileteid, kuigi enamikul juhtudel on need standardse vormuleeringuga \u2014 \"Ajutine probleem. Tegutsemist ei ole vaja\". Aga k\u00f5ik on h\u00f5ivatud ning alati on n\u00e4idata kliendile \u2014 t\u00f6\u00f6 k\u00e4ib.<\/p>\n<h3>Teine tee. J\u00e4lgige ainult seda, mis on vajalik, ja seda, mis ei ole vajalik, ei tohiks j\u00e4lgida.<\/h3>\n<p>\nJ\u00e4lgimist on v\u00f5imalik korraldada natuke teistmoodi\u2014ainult \u00fcksuste ja s\u00fcndmuste jaoks:<\/p>\n<ul>\n<li>Millele DBA insener saab m\u00f5jutada.<\/li>\n<li>Mille puhul on olemas tegevusalgoritm s\u00fcndmuse v\u00f5i \u00fcksuse muutuse tekkimisel.<\/li>\n<\/ul>\n<p>\nV\u00f5ttes arvesse seda eeldust ja meenutades \"<b>Filosoofiline sissejuhatus<\/b>\" eesm\u00e4rki v\u00e4ltida regulaarset kordamist \"<b>L\u00fc\u00fcriline sissejuhatus v\u00f5i miks seda k\u00f5ike vaja on<\/b>\", oleks m\u00f5istlik j\u00e4lgida \u00fcksikute p\u00e4ringute j\u00f5udlust, et optimeerida ja anal\u00fc\u00fcsida, mis l\u00f5puks peaks viima kogu andmebaasi j\u00f5udluse paranemiseni. <\/p>\n<p>Kuid et parandada suure koormusega p\u00e4ringut, mis m\u00f5jutab andmebaasi \u00fcldist tulemuslikkust, tuleb see esmalt tuvastada. <\/p>\n<p>Seega tekib kaks omavahel seotud k\u00fcsimust:<\/p>\n<ul>\n<li>milline p\u00e4ring loetakse suure koormusega <\/li>\n<li>kuidas otsida suure koormusega p\u00e4ringuid.<\/li>\n<\/ul>\n<p>\nIlmselgelt on suure koormusega p\u00e4ring see, mis kasutab tulemuse saamiseks palju s\u00fcsteemi ressursse.<\/p>\n<p><b>Liigume teise k\u00fcsimuse juurde \u2014 kuidas otsida ja j\u00e4lgida suure koormusega p\u00e4ringuid?<\/b><\/p>\n<h3>Millised on p\u00e4ringute j\u00e4lgimise v\u00f5imalused PostgreSQL-is? <\/h3>\n<p>\nOracle'iga v\u00f5rreldes on v\u00f5imalusi veidi v\u00e4hem, kuid siiski saab midagi teha.<\/p>\n<p><img decoding=\"async\" alt=\"S\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse 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>\nSuure koormusega p\u00e4ringute otsimiseks ja j\u00e4lgimiseks on PostgreSQL-is m\u00e4\u00e4ratud standardne laiendus pg_stat_statements.<\/p>\n<p>P\u00e4rast laienduse installimist tekib sihtandmebaasis samanimeline vaade, mida tuleb kasutada j\u00e4lgimise eesm\u00e4rkidel.<\/p>\n<p>Sihtcolumns\u00a0pg_stat_statements monitooringu s\u00fcsteemi v\u00e4ljat\u00f6\u00f6tamiseks:<\/p>\n<ul>\n<li><b>queryid <\/b>Sisemine hash-kood, mis on arvutatud operaatori s\u00fcntaksipuust<\/li>\n<li><b>max_time <\/b>Maximaalne aeg, mis on operaatori jaoks kulutatud, millisekundites<\/li>\n<\/ul>\n<p>\nKogudes ja kasutades statistikat nende kahe veeru kohta, saab ehitada j\u00e4lgimiss\u00fcsteemi.<\/p>\n<h3>Kuidas kasutatakse pg_stat_statements PostgreSQL j\u00f5udluse j\u00e4lgimiseks<\/h3>\n<p>\n<img decoding=\"async\" alt=\"S\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse parandamiseks\" src=\"\/wp-content\/uploads\/2019\/04\/fbec099eb6ff2de2fb3c90c7cbcf9505.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00fcsimuste j\u00f5udluse j\u00e4lgimiseks kasutatakse:<br \/>\nSihtandmebaasi k\u00fcljest - vaade pg_stat_statements <br \/>\nJ\u00e4lgimise <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-los-angeles\/\"   title=\"serverile\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3479\">serverile<\/a> ja andmebaasi puhul - bash-skriptide ja teenustabelite kogum.<\/p>\n<h3>1. etapp - statistiliste andmete kogumine<\/h3>\n<p>\nJ\u00e4lgimise hostis k\u00e4ivitatakse regulaarselt skript, mis kopeerib pg_stat_statements vaate sisu sihtandmebaasist j\u00e4lgimisandmebaasi tabelisse pg_stat_history. <\/p>\n<p>Seega moodustatakse eraldi p\u00e4ringute sooritamise ajalugu, mida saab kasutada j\u00f5udlusaruannete koostamiseks ja m\u00f5\u00f5dikute seadistamiseks.<\/p>\n<h3>2. etapp - j\u00f5udluse m\u00f5\u00f5dikute seadistamine<\/h3>\n<p>\nKogutud andmete p\u00f5hjal valime v\u00e4lja p\u00e4ringud, mille t\u00e4itmine on kliendi (rakenduse) jaoks k\u00f5ige kriitilisem\/olulisem. Klientidega kokkuleppimise j\u00e4rgi seame j\u00f5udluse m\u00f5\u00f5dikud queryid ja max_time v\u00e4ljade kaudu. <\/p>\n<h3>Tulemus - j\u00f5udluse j\u00e4lgimise alustamine<\/h3>\n<p><\/p>\n<ol>\n<li>J\u00e4lgimiste skript kontrollib k\u00e4ivitamisel konfigureeritud j\u00f5udlusm\u00f5\u00f5dikuid, v\u00f5rreldes max_time m\u00f5\u00f5diku v\u00e4\u00e4rtust sihtandmebaasi pg_stat_statements esitluses oleva v\u00e4\u00e4rtusega.<\/li>\n<li>Kui v\u00e4\u00e4rtus sihtandmebaasis \u00fcletab m\u00f5\u00f5diku v\u00e4\u00e4rtuse, genereeritakse hoiatus (insident piletite s\u00fcsteemis).<\/li>\n<\/ol>\n<p><\/p>\n<h3>Lisav\u00f5imalus 1<\/h3>\n<p>\n<b>K\u00fcsimuste t\u00e4itmisplaanide ajalugu<\/b><\/p>\n<p>J\u00f5udlusprobleemide edasiseks lahendamiseks on v\u00e4ga kasulik omada k\u00fcsimuste t\u00e4itmisplaanide muutmise ajalugu. <\/p>\n<p>Ajaloo salvestamiseks kasutatakse teenustabelit log_query. Tabelit t\u00e4idetakse PostgreSQL logifaili anal\u00fc\u00fcsimisel. Kuna logifaili, erinevalt pg_stat_statements esitlusest, salvestatakse t\u00e4isteksti koos t\u00e4itmisparameetrite v\u00e4\u00e4rtustega, mitte normaliseeritud tekstina, on v\u00f5imalik j\u00e4lgida mitte ainult k\u00fcsimuste aega ja kestust, vaid ka hoida t\u00e4itmisplaane antud ajahetkel.<\/p>\n<h3>Lisav\u00f5imalus 2<\/h3>\n<p>\n<b>J\u00e4tkuv j\u00f5udluse parendamise protsess<\/b><\/p>\n<p>Konkreetsete p\u00e4ringute j\u00e4lgimine ei ole \u00fcldiselt m\u00f5eldud andmebaasi j\u00f5udluse pideva parandamise \u00fclesande lahendamiseks, kuna see kontrollib ja lahendab j\u00f5udluse probleeme ainult \u00fcheainsa p\u00e4ringu osas. Siiski on v\u00f5imalik meetodit laiendada ja seadistada j\u00e4lgimiseks k\u00f5iki andmebaase. <\/p>\n<p>Selleks tuleb sisestada t\u00e4iendavad j\u00f5udluse m\u00f5\u00f5dikud:<\/p>\n<ul>\n<li>Viimaste p\u00e4evade jooksul<\/li>\n<li>Alusp\u00f5hja periood<\/li>\n<\/ul>\n<p>\nSkript valib p\u00e4ringud sihitud andmebaasi pg_stat_statements vaate kaudu ja v\u00f5rdleb max_time v\u00e4\u00e4rtust keskmise max_time v\u00e4\u00e4rtusega, esimeses juhul viimaste p\u00e4evade jooksul v\u00f5i valitud ajavahemiku (baseline) jooksul, teises juhul.<\/p>\n<p>Seega juhul, kui m\u00f5ne p\u00e4ringu j\u00f5udlus halveneb, genereeritakse automaatselt hoiatust, ilma k\u00e4sitsi aruannete anal\u00fc\u00fcsita. <\/p>\n<h3>Aga mis seos on s\u00fcnteesiga?<\/h3>\n<p>\nKirjeldatud l\u00e4henemises, nagu s\u00fcnteesi meetod ette n\u00e4eb, parendades s\u00fcsteemi \u00fcksikute osade abil, parendame s\u00fcsteemi tervikuna.<\/p>\n<ul>\n<li>Andmebaasi t\u00e4idetav p\u00e4ring \u2013 tees<\/li>\n<li>Muudetud p\u00e4ring \u2013 antitees<\/li>\n<li>S\u00fcsteemi seisundi muutmine \u2014 s\u00fcntees<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"S\u00fcntes kui \u00fcks meetod PostgreSQLi j\u00f5udluse 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 suurendamise laiendamine ajaloo lisamisega s\u00fcsteemse kuvamise pg_stat_activity jaoks<\/li>\n<li>Statistika suurendamise laiendamine ajaloo lisamisega individuaalsete tabelite statistika jaoks, mis osalevad p\u00e4ringutes <\/li>\n<li>Integreerimine AWS-i pilve j\u00e4relevalves\u00fcsteemiga<\/li>\n<li>Ja veel, saame midagi 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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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.0.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 \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\" \/>\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 PostgreSQL-i j\u00f5udluse parandamise meetod | ProHoster","description":"Filosoofiline sissejuhatus. Kuidas teadaolevalt on ainult kaks meetodit probleemide lahendamiseks: anal\u00fc\u00fcsimeetod v\u00f5i deduktiivne meetod, ehk \u00fcldisest spetsiifiliseks. S\u00fcnteesimeetod v\u00f5i induktiivne meetod, ehk spetsiifilisest \u00fcldiseks. Probleemi \"andmebaasi j\u00f5udluse parandamine\" lahendamine v\u00f5ib v\u00e4lja n\u00e4ha j\u00e4rgmiselt. Anal\u00fc\u00fcs \u2014 jagame probleemi eraldi osadeks ja lahendades need proovime\u2026","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 \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","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}]}}