{"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\/fr\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","title":{"rendered":"La synth\u00e8se comme l'une des m\u00e9thodes d'am\u00e9lioration de la performance de PostgreSQL","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"La synth\u00e8se comme l&#039;une des m\u00e9thodes d&#039;am\u00e9lioration de la performance de PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/04\/6960ab96e829332fbde0b2aebd79b48a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Introduction philosophique<\/h3>\n<p>\nComme on le sait, il existe seulement deux m\u00e9thodes pour r\u00e9soudre des probl\u00e8mes :<\/p>\n<ol>\n<li>La m\u00e9thode d'analyse ou m\u00e9thode d\u00e9ductive, ou de l g\u00e9n\u00e9ral au particulier.<\/li>\n<li>La m\u00e9thode de synth\u00e8se ou m\u00e9thode inductive, ou du particulier au g\u00e9n\u00e9ral.<\/li>\n<\/ol>\n<p>\nPour r\u00e9soudre le probl\u00e8me \"am\u00e9liorer la performance de la base de donn\u00e9es\", cela peut ressembler \u00e0 ceci.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<b>Analyse<\/b> \u2014 nous d\u00e9composons le probl\u00e8me en parties distinctes et en les r\u00e9solvant, nous essayons finalement d'am\u00e9liorer la performance globale de la base de donn\u00e9es.<\/p>\n<p>En pratique, l'analyse ressemble \u00e0 ceci :<\/p>\n<ul>\n<li>Un probl\u00e8me survient (incident de performance) <\/li>\n<li>Nous collectons des informations statistiques sur l'\u00e9tat de la base de donn\u00e9es<\/li>\n<li>Nous cherchons les goulets d'\u00e9tranglement<\/li>\n<li>Nous r\u00e9solvons les probl\u00e8mes des goulets d'\u00e9tranglement<\/li>\n<\/ul>\n<p>\n<b>Goulets d'\u00e9tranglement de la base de donn\u00e9es<\/b> \u2014 infrastructure (CPU, M\u00e9moire, Disques, R\u00e9seau, OS), configurations (postgresql.conf), requ\u00eates :<\/p>\n<p><b>Infrastructure<\/b>: les possibilit\u00e9s d'influence et de changement pour l'ing\u00e9nieur sont presque nulles.<\/p>\n<p><b>Configurations de la base de donn\u00e9es<\/b>: les possibilit\u00e9s de changements sont l\u00e9g\u00e8rement sup\u00e9rieures au cas pr\u00e9c\u00e9dent, mais g\u00e9n\u00e9ralement toujours assez difficiles, surtout dans le cloud.<\/p>\n<p><b>Requ\u00eates<\/b> \u00e0 la base de donn\u00e9es : <u>le seul domaine de man\u0153uvre<\/u>.<\/p>\n<p><b>Synth\u00e8se<\/b> \u2014 nous am\u00e9liorons la performance des parties individuelles, en esp\u00e9rant qu'en cons\u00e9quence, la performance de la base de donn\u00e9es s'am\u00e9liorera. <\/p>\n<h3>Introduction lyrique ou pourquoi tout cela est n\u00e9cessaire <\/h3>\n<p>\nComment se d\u00e9roule le processus de r\u00e9solution d'incidents de performance, si la performance de la base de donn\u00e9es n'est pas surveill\u00e9e : <\/p>\n<p>Client - \"nous avons tout mauvais, lent, faites-nous bien\"<br \/>\nIng\u00e9nieur - \"mauvais, c'est quoi ?\"<br \/>\nClient - \"voici comment c'est actuellement (il y a une heure, hier, la derni\u00e8re fois c'\u00e9tait), lent\"<br \/>\nIng\u00e9nieur - \"et quand c'\u00e9tait bien ?\"<br \/>\nClient - \"il y a une semaine (deux semaines), c'\u00e9tait pas mal.\" (C'est de la chance)<br \/>\nClient - \"je ne me souviens pas quand c'\u00e9tait bon, mais maintenant c'est mauvais\" (R\u00e9ponse habituelle)<\/p>\n<p>Le r\u00e9sultat donne un tableau classique :<\/p>\n<p><img decoding=\"async\" alt=\"La synth\u00e8se comme l&#039;une des m\u00e9thodes d&#039;am\u00e9lioration de la performance de PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/04\/836777a3f813b1f5c36cc23aa5af6ad0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Qui est responsable et que faire ?<\/h3>\n<p>\nPour la premi\u00e8re partie de la question, il est plus facile de r\u00e9pondre - c'est toujours la faute de l'ing\u00e9nieur DBA. <\/p>\n<p>Pour la deuxi\u00e8me partie, ce n'est pas trop difficile non plus - il faut mettre en place un syst\u00e8me de surveillance des performances de la base de donn\u00e9es.<\/p>\n<p>La premi\u00e8re question se pose - <b>que surveiller ?<\/b><\/p>\n<p><b>Chemin 1. Nous allons surveiller TOUT<\/b><\/p>\n<p><img decoding=\"async\" alt=\"La synth\u00e8se comme l&#039;une des m\u00e9thodes d&#039;am\u00e9lioration de la performance de PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/04\/9aa90bcce679e67d1749e270828cf792.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa charge CPU, le nombre d'op\u00e9rations de lecture\/\u00e9criture sur le disque, la taille de la m\u00e9moire allou\u00e9e, et encore une m\u00e9ga-tonne de diff\u00e9rents compteurs que tout syst\u00e8me de surveillance fonctionnel peut fournir.<\/p>\n<p>Le r\u00e9sultat est une multitude de graphiques, de tableaux r\u00e9capitulatifs et des alertes constantes par e-mail, ainsi qu'une occupation \u00e0 100 % de l'ing\u00e9nieur \u00e0 traiter une multitude de tickets identiques, qui se formulent g\u00e9n\u00e9ralement de mani\u00e8re standard \u2014 \u00ab Probl\u00e8me temporaire. Aucune action requise \u00bb. Mais au moins, tout le monde est occup\u00e9, et il y a toujours quelque chose \u00e0 montrer au client \u2014 le travail est en cours.<\/p>\n<h3>Voie 2. Surveiller uniquement ce qui est n\u00e9cessaire, et ne pas surveiller ce qui n'est pas n\u00e9cessaire.<\/h3>\n<p>\nOn peut surveiller, un peu diff\u00e9remment : uniquement les entit\u00e9s et les \u00e9v\u00e9nements :<\/p>\n<ul>\n<li>Sur lesquels l'ing\u00e9nieur DBA peut agir.<\/li>\n<li>Pour lesquels il existe un algorithme d'actions en cas d'\u00e9v\u00e9nement ou de changement d'entit\u00e9.<\/li>\n<\/ul>\n<p>\n\u00c0 partir de cette hypoth\u00e8se et en se souvenant de \u00ab<b>Introduction philosophique<\/b>\u00bb, afin d'\u00e9viter la r\u00e9p\u00e9tition r\u00e9guli\u00e8re de \u00ab<b>Introduction lyrique ou pourquoi tout cela est n\u00e9cessaire<\/b>\u00bb, il serait judicieux de surveiller la performance des requ\u00eates sp\u00e9cifiques, pour optimiser et analyser, ce qui devrait finalement mener \u00e0 une am\u00e9lioration des performances de l'ensemble de la base de donn\u00e9es. <\/p>\n<p>Mais pour am\u00e9liorer une requ\u00eate lourde qui affecte la performance g\u00e9n\u00e9rale de la base de donn\u00e9es, il faut d'abord la trouver. <\/p>\n<p>Ainsi, deux questions interd\u00e9pendantes se posent :<\/p>\n<ul>\n<li>quelle requ\u00eate est consid\u00e9r\u00e9e comme lourde <\/li>\n<li>comment trouver les requ\u00eates lourdes.<\/li>\n<\/ul>\n<p>\n\u00c9videmment, une requ\u00eate lourde est celle qui utilise beaucoup de ressources syst\u00e8me pour obtenir un r\u00e9sultat.<\/p>\n<p><b>Passons \u00e0 la deuxi\u00e8me question \u2014 comment chercher et ensuite surveiller les requ\u00eates lourdes ?<\/b><\/p>\n<h3>Quelles options de surveillance des requ\u00eates existent dans PostgreSQL ? <\/h3>\n<p>\nCompar\u00e9 \u00e0 Oracle, les options sont un peu limit\u00e9es, mais quelques actions peuvent tout de m\u00eame \u00eatre entreprises.<\/p>\n<p><img decoding=\"async\" alt=\"La synth\u00e8se comme l&#039;une des m\u00e9thodes d&#039;am\u00e9lioration de la performance de PostgreSQL\" 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>\nPour trouver et surveiller les requ\u00eates lourdes dans PostgreSQL, l'extension standard pg_stat_statements est utilis\u00e9e.<\/p>\n<p>Apr\u00e8s l'installation de l'extension, une vue du m\u00eame nom appara\u00eet dans la base de donn\u00e9es cible, qui doit \u00eatre utilis\u00e9e \u00e0 des fins de surveillance.<\/p>\n<p>Colonnes cibles de pg_stat_statements pour construire un syst\u00e8me de surveillance :<\/p>\n<ul>\n<li><b>queryid <\/b>Code de hachage interne, calcul\u00e9 \u00e0 partir de l'arbre d'analyse de l'instruction.<\/li>\n<li><b>max_time <\/b>Temps maximum consacr\u00e9 \u00e0 l'instruction, en millisecondes.<\/li>\n<\/ul>\n<p>\nEn accumulant et en utilisant des statistiques sur ces deux colonnes, on peut construire un syst\u00e8me de surveillance.<\/p>\n<h3>Comment pg_stat_statements est utilis\u00e9 pour surveiller les performances de PostgreSQL<\/h3>\n<p>\n<img decoding=\"async\" alt=\"La synth\u00e8se comme l&#039;une des m\u00e9thodes d&#039;am\u00e9lioration de la performance de PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/04\/fbec099eb6ff2de2fb3c90c7cbcf9505.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPour surveiller les performances des requ\u00eates, on utilise :<br \/>\nDu c\u00f4t\u00e9 de la base de donn\u00e9es cible \u2014 la vue pg_stat_statements <br \/>\nDu c\u00f4t\u00e9 <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/server\/dts-los-angeles\/\"   title=\"de serveurs\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3479\">de serveurs<\/a> et de la base de donn\u00e9es de surveillance \u2014 un ensemble de scripts bash et de tables de service.<\/p>\n<h3>\u00c9tape 1 - collecte de donn\u00e9es statistiques<\/h3>\n<p>\nSur l'h\u00f4te de surveillance, un script est ex\u00e9cut\u00e9 r\u00e9guli\u00e8rement par cron, qui copie le contenu de la vue pg_stat_statements de la base de donn\u00e9es cible dans la table pg_stat_history de la base de donn\u00e9es de surveillance. <\/p>\n<p>Ainsi, l'historique de l'ex\u00e9cution des requ\u00eates individuelles est constitu\u00e9, ce qui peut \u00eatre utilis\u00e9 pour g\u00e9n\u00e9rer des rapports de performance et configurer des m\u00e9triques.<\/p>\n<h3>\u00c9tape 2 - configuration des m\u00e9triques de performance<\/h3>\n<p>\nSur la base des donn\u00e9es collect\u00e9es, nous choisissons les requ\u00eates dont l'ex\u00e9cution est la plus critique\/essentielle pour le client (l'application). En accord avec le client, nous \u00e9tablissons les valeurs des m\u00e9triques de performance en utilisant les champs queryid et max_time. <\/p>\n<h3>R\u00e9sultat - d\u00e9but de la surveillance des performances<\/h3>\n<p><\/p>\n<ol>\n<li>Lors de son lancement, le script de surveillance v\u00e9rifie les m\u00e9triques de performance configur\u00e9es, en comparant la valeur max_time de la m\u00e9trique avec la valeur de la vue pg_stat_statements dans la base de donn\u00e9es cible.<\/li>\n<li>Si la valeur dans la base de donn\u00e9es cible d\u00e9passe la valeur de la m\u00e9trique, un avertissement est g\u00e9n\u00e9r\u00e9 (incident dans le syst\u00e8me de tickets)<\/li>\n<\/ol>\n<p><\/p>\n<h3>Fonctionnalit\u00e9 suppl\u00e9mentaire 1<\/h3>\n<p>\n<b>Historique des plans d'ex\u00e9cution des requ\u00eates<\/b><\/p>\n<p>Pour une r\u00e9solution ult\u00e9rieure des incidents de performance, il est tr\u00e8s utile d'avoir un historique des modifications des plans d'ex\u00e9cution des requ\u00eates. <\/p>\n<p>Pour stocker l'historique, une table de service log_query est utilis\u00e9e. La table est remplie lors de l'analyse du fichier journal charg\u00e9 de PostgreSQL. \u00c9tant donn\u00e9 que le fichier journal, contrairement \u00e0 la vue pg_stat_statements, contient le texte complet avec les valeurs des param\u00e8tres d'ex\u00e9cution, et non le texte normalis\u00e9, il est possible de conserver non seulement le temps et la dur\u00e9e des requ\u00eates, mais aussi d'enregistrer les plans d'ex\u00e9cution \u00e0 un moment donn\u00e9.<\/p>\n<h3>Fonctionnalit\u00e9 suppl\u00e9mentaire 2<\/h3>\n<p>\n<b>Processus d'am\u00e9lioration continue des performances<\/b><\/p>\n<p>La surveillance des requ\u00eates individuelles n'est g\u00e9n\u00e9ralement pas destin\u00e9e \u00e0 r\u00e9soudre le probl\u00e8me de l'am\u00e9lioration continue des performances de la base de donn\u00e9es dans son ensemble, car elle ne g\u00e8re que les probl\u00e8mes de performance pour des requ\u00eates sp\u00e9cifiques. Cependant, il est possible d'\u00e9largir la m\u00e9thode et de configurer la surveillance des requ\u00eates pour toutes les bases de donn\u00e9es. <\/p>\n<p>Pour cela, il faut introduire des m\u00e9triques de performance suppl\u00e9mentaires :<\/p>\n<ul>\n<li>Ces derniers jours<\/li>\n<li>Pour une p\u00e9riode de base<\/li>\n<\/ul>\n<p>\nLe script s\u00e9lectionne les requ\u00eates de la vue pg_stat_statements de la base de donn\u00e9es cible et compare la valeur max_time \u00e0 la moyenne max_time, dans le premier cas sur les jours r\u00e9cents ou sur une p\u00e9riode de temps choisie (baseline), dans le second cas.<\/p>\n<p>Ainsi, en cas de d\u00e9gradation des performances pour toute requ\u00eate, un avertissement sera g\u00e9n\u00e9r\u00e9 automatiquement, sans analyse manuelle des rapports. <\/p>\n<h3>Et quel est le rapport avec la synth\u00e8se ?<\/h3>\n<p>\nDans l'approche d\u00e9crite, comme le suppose la m\u00e9thode de synth\u00e8se - en am\u00e9liorant des parties individuelles du syst\u00e8me, nous am\u00e9liorons le syst\u00e8me dans son ensemble.<\/p>\n<ul>\n<li>Requ\u00eate ex\u00e9cut\u00e9e par la base de donn\u00e9es - th\u00e8se<\/li>\n<li>Requ\u00eate modifi\u00e9e - antith\u00e8se<\/li>\n<li>Changement d'\u00e9tat du syst\u00e8me - synth\u00e8se<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"La synth\u00e8se comme l&#039;une des m\u00e9thodes d&#039;am\u00e9lioration de la performance de PostgreSQL\" src=\"\/wp-content\/uploads\/2019\/04\/088abb9900319353a42d236d26a20a2c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>D\u00e9veloppement du syst\u00e8me<\/h3>\n<p><\/p>\n<ul>\n<li>Extension des statistiques collect\u00e9es en ajoutant l'historique \u00e0 la vue syst\u00e8me pg_stat_activity<\/li>\n<li>Extension des statistiques collect\u00e9es en ajoutant l'historique pour les statistiques des tables individuelles participant aux requ\u00eates <\/li>\n<li>Int\u00e9gration avec le syst\u00e8me de surveillance dans le cloud AWS<\/li>\n<li>Et encore, on peut imaginer quelque chose\u2026<\/li>\n<\/ul>\n<p>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47La synth\u00e8se comme l'une des m\u00e9thodes d'am\u00e9lioration des performances de PostgreSQL | ProHoster","description":"Philosophique.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/sintez-kak-odin-iz-metodov-uluchsheniya-proizvoditelnosti-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/30767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=30767"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/30767\/revisions"}],"predecessor-version":[{"id":162005,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/30767\/revisions\/162005"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/22752"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=30767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=30767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=30767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}