Table des matières

Tunning

https://public.dalibo.com/exports/formation/manuels/modules/j1/j1.handout.html

Optimisation

https://pgtune.leopard.in.ua/#/

“ il est recommandé de fortement augmenter les paramètres shared_buffers et work_mem qui indiquent la quantité de mémoire maximale à utiliser pour un certain nombre d'opérations. L'utilitaire pg_tune peut être utilisé pour obtenir des indications sur les valeurs à utiliser, suivant la configuration matérielle (même si les valeurs exactes dépendent de l'utilisation qui est faite de la base).” http://blog.pilotsystems.net/2011/aout/cas-pratique-doptimisation-de-postgresql

Autovacuum

PostgreSQL ™ dispose d'une fonctionnalité optionnelle mais hautement recommandée appelée autovacuum, dont le but est d'automatiser l'exécution des commandes VACUUM et ANALYZE . Une fois activé, autovacuum vérifie les tables ayant un grand nombre de lignes insérées, mises à jour ou supprimées. Ces vérifications utilisent la fonctionnalité de récupération de statistiques ; du coup, autovacuum ne peut pas être utilisé sauf si track_counts est configuré à true. Dans la configuration par défaut, l'autovacuum est activé et les paramètres liés sont correctement configurés.https://docs.postgresql.fr/10/maintenance.html#autovacuum

select * from pg_settings
where name like 'autovacuum%'
or name = 'track_counts';

Analyse

ANALYZE collecte des statistiques sur le contenu des tables de la base de données et stocke les résultats dans le catalogue système pg_statistic. L'optimiseur de requêtes les utilise pour déterminer les plans d'exécution les plus efficaces. Dans la configuration par défaut de PostgreSQL™, le démon autovacumm (voir Section 24.1.6, « Le démon auto-vacuum ») l'analyse automatique des tables quand elle est remplie de données sont la première fois, puis à chaque fois qu'elles sont modifiées via les opérations habituelles. Quand l'autovacuum est désactivé, il est intéressant de lancer ANALYZE périodiquement ou juste après avoir effectué de grosses modifications sur le contenu d'une table.https://docs.postgresql.fr/10/sql-analyze.html

Gestion du cluster

# Afficher le cluster
$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
9.1     main      5432 online postgres /var/lib/postgresql/9.1/main       /var/log/postgresql/postgresql-9.1-main.log

# Supprimer le cluster
$ pg_dropcluster 9.1 main --stop

# Créer le cluster
$ pg_createcluster --locale fr_FR.UTF-8 9.1 main

# Démarrage
$ pg_ctlcluster 9.1 main start