Pages: 1
- Sujet prĂ©cĂ©dent - [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes - Sujet suivant
#1 Tue 25 February 2020 18:14
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
[PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Bonjour,
Je possÚde plusieurs bases de données sur mon serveur PostgreSQL. Je partage plusieurs tables sous forme de tables distantes via le module postgre_fdw sur l'une des bases de données.
Par exemple, sur ma base A, je fais une requĂȘte avec des jointures entre plusieurs tables TA1, TA2 et TA3. Elle dure de l'ordre de 10s.
Sur ma base B, je dispose de 3 tables Ă©trangĂšres TB1, TB2 et TB3 pointant respectivement vers TA1, TA2 et TA3. La mĂȘme requĂȘte dure plusieurs heures...
Y a-t-il moyen d'amĂ©liorer les performances, voire d'obtenir les mĂȘmes performances avec ces tables distantes ?
Merci
LSam
Hors ligne
#2 Tue 25 February 2020 19:00
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1566
Re: [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Bonsoir,
Il y a quelques paramĂštres rĂ©glables pour ce FDW: https://www.postgresql.org/docs/current … 11.7.42.10
Vous pouvez regarder le plan des requĂȘtes et voir si ces paramĂštres le modifient dans le bon sens.
Nicolas
Hors ligne
#3 Wed 26 February 2020 09:25
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Bonjour,
Merci pour le lien, j'avais regardé mais pas osé me lancer dans la modification de ces options.
J'ai d'abord tenté de modifier use_remote_estimate, fdw_tuple_cost ainsi dans les options de mon serveur : use_remote_estimate 'true', fdw_tuple_cost '0.001', fdw_startup_cost '0'.
Les performances sont toujours aussi désastreuses...
Ma requĂȘte SQL utilisant une fonction personnalisĂ©e, j'ai cru comprendre que la volatilitĂ© de la fonction avait son importance dans l'optimisation des requĂȘtes. Les utilisant peu, j'avais omis ce paramĂštre et laissĂ© 'VOLATILE' par dĂ©faut. Or, si la fonction le permet (Cf. la doc. PostgreSQL), 'IMMUTABLE' optimise grandement les requĂȘtes.
AprĂšs la conversion de ma fonction en fonction IMMUTABLE, toujours la mĂȘme lenteur...
Ne maĂźtrisant pas du tout les optimisations, j'avoue ĂȘtre un peu perdu alors qu'il y a forcĂ©ment une solution.
Merci pour toute piste.
LSam
Dernière modification par Lsam (Wed 26 February 2020 09:29)
Hors ligne
#4 Wed 26 February 2020 14:53
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Salut,
est ce que vous pourriez nous poster le resultat du
EXPLAIN VERBOSE de votre requĂȘte afin qu'on puisse Ă©tudier le plan ?
Si vous pouvez, poster le Ă l'aide de ce site qui met en forme les explains :
https://explain.depesz.com/
EDIT:
je n'avais pas vu que Nicolas avait déja suggéré l'idée.
Dernière modification par tumasgiu (Wed 26 February 2020 14:53)
Hors ligne
#5 Wed 26 February 2020 15:31
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Peut ĂȘtre que crĂ©er une vue de la jointure cotĂ© serveur distant amĂ©liorerait les performances.
Hors ligne
#6 Wed 26 February 2020 15:37
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Voici les explains :
- requĂȘte sur les tables du serveur A
- requĂȘte sur les tables distantes Ă partir du serveur B
Merci pour le coup de main.
LSam
Hors ligne
#7 Thu 27 February 2020 12:21
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1226
Re: [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes
Merci.
Est ce que c'est possible d'avoir la requĂȘte ?
Si vous pouviez aussi lancer les requĂȘtes avec EXPLAIN ANALYZE VERBOSE,
pour avoir les temps d'execution, et les reposter sur explain.despez.
Est ce que vous avez essayer de faire d'utiliser une vue distante?
Dernière modification par tumasgiu (Thu 27 February 2020 16:28)
Hors ligne
Pages: 1
- Sujet prĂ©cĂ©dent - [PostgreSQL] Optimisation des requĂȘtes sur des tables distantes - Sujet suivant

