Marc Cousin Meetup PostgreSQL Nantes 8 mars 2017

Slides:



Advertisements
Présentations similaires
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
Advertisements

PLAN ● L'instance – Création – Démarrer, Arréter et surveiller – Connexion / Utilisateurs ● Optimisations et interconnexions ● Administration et sauvegardes.
#JSS2013 Les journées SQL Server 2013 Un événement organisé par GUSS.
PetaSky: Expérimentations avec HadoopDB et Hive 1 Amin Mesmoudi.
SQLSaturday Paris 2016 Query Store ou comment donner de la mémoire à sa base de données Sarah Bessard Philippe Geiger.
Ghost (Création d'image Système)‏ C.R.I.P.T Informatique (BOYER Jérôme)‏
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Projet tuteuré 2009 Les clients légers Alexandre Cédric Joël Benjamin.
Oubliez SQL avec SQLAlchemy Pycon.fr 2009 Michael Scherer.
PostgreSQLfr.org Nouvelles fonctionnalités de la version 8.3.
Le système Raid 5 Table des matières Qu'est ce que le RAID ? Les objectifs Le raid 5 Les avantages et les inconvénients Les composants d’un Raid.
Introduction Bases de Données NoSQL Principe de base Avantages/Inconvénients L’évolution du Web 2.0 et actuellement Web 3.0, a montrée l’insuffisance des.
Un système autonomique basé sur des bases de connaissances pour améliorer les performances d’un entrepôt de données Réalisé par : OUSSAFI MOHAMMED HOURRI.
ANNEE ACADEMIQUE Institut Supérieur Emmanuelle D’Alzon de Butembo COURS: THEORIE DE BASE DE DONNEES : 45H PROMOTION: G2 Gestion Informatique.
Procédures Framework LDAP
Module S41 Chapitre 11  Configuration de Windows XP Professionnel pour l'informatique mobile.
Les Bases de données Définition Architecture d’un SGBD
La technologie des mémoires
DBStation Date 06/12/16 Rédacteurs Hervé FAUVET et Bruno GUEDJ.
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Systèmes d’Information
Construire des requêtes
Introduction aux Systèmes de Gestion de Bases de données
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Utilisation de PostgreSQL
Marchés Exterieurs Des Industries Agroalimentaires
SOMMAIRE 1: ORALE 2: Les 3 systèmes de gestion de base de donnés 3:ORACLE DATA BASE 4:MY SQL 5:Oppen Office.org Base 6:Concurrence Conclusion.
Base de données: Généralité IFT6800 Jian-Yun Nie.
Sécurisation de l’accès Internet
Transformez votre mobile en modem
AIDE A L’UTILISATION DU LOGICIEL LATISPRO
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Journée Analyse D0, 19 janvier 2004
Présentation v1 Semiosys Elie Naulleau
Principes de programmation (suite)
Les fonctions.
Les fonctions.
DARCY Lionel BTS SIO Option SLAM
Chapitre 12 Surveillance des ressources et des performances
GESTION DES INSCRIPTIONS DANS UNE ECOLE
Outils Statistiques pour la Sémantique Décembre 2013
Comment fonctionne RADIUS?
Mini synthèse accès fichier en C
P2P-Tube : amélioration de YouTube par P2P.
Gestion du cours Aissa Boulmerka.
Programmation système
Chapitre 7 Configuration de l'environnement du bureau
Août 2009.
Type Concret – Type Abstrait
Instants magiques Automatique.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
6. CONCEPTION PHYSIQUE RELATIONNELLE
Les classes et les objets
18 Bases de données parallèles et réparties
4. IMPLEMENTATION DES STRUCTURES DE DONNEES
BUFFER CIRCULAIRE Meryem EL BAKRI. PLAN Introduction Buffer circulaire Fonctionnement.
Info Bases de données avancées
Dépiler et mettre valeur dans RT (récup. paramètre)
Les différents types des éoliennes - Eoliennes à axe vertical - Eoliennes à axe horizontale.
© Robert Godin. Tous droits réservés.
Test de performances. Test de performances:  Un test de performance est un test dont l'objectif est de déterminer la performance d'un système informatique.
Service de consultation en ligne
COURS ADMINISTRATION DE BASES DE DONNÉES IMPORT/EXPORT Karim LABIDI ISET Ch
Base MySQL SQLPHP(X)HTMLJavaScript sessions Navigateur PHPMyAdmin ServeurClient FTP Editeur Administration Visiteur JS scripts Saisie textes JS messages.
Bases de données Singleton pour la connexion
Qu’est ce qu’une page web? Comment fonctionne un site web?
App Inventor trucs Afficher une image depuis le Web ou Google Drive.
LINQ. LINQ (Language-Integrated Query) est une nouveauté du.NET Framework 3.5 C’est le nom d’un ensemble de technologies basé sur l’intégration de fonctions.
Multiplier par 10, par 100 ou par
Transcription de la présentation:

Marc Cousin Meetup PostgreSQL Nantes 8 mars 2017 pg_stat_statements Marc Cousin Meetup PostgreSQL Nantes 8 mars 2017

Optimisation d’une base Les développeurs attendent la «danse du DBA», une série d’incantations magiques…

Danse du DBA : Paramètres OS (cache, read-ahead…), réseau Paramètres SGBD (cache, tris…) Plus de matériel, plus cher, scaling horizontal, vertical

Malheureusement Les gains sont habituellement faibles Surtout avec PostgreSQL Quand il y a des gains… souvent le problème est ailleurs 95% des gains de performances sont applicatifs Penser relationnel, pas procédural Ne pas multiplier les aller-retours à la base pour rien (ORM…) Ne pas faire de traitement inutile. La requête la plus rapide, c‘est celle qu‘on n‘exécute jamais

Cibler l’optimisation SQL est déclaratif (cache beaucoup de complexité) On brasse quelquefois des Téra-octets sans s‘en rendre compte Des dizaines, voire centaines de requêtes différentes dans une appli 95 % de ces requêtes ne posent pas problème Comment trouver les 5 % ?

Outillage log_min_duration_statement=0ms Tout tracer pgFouine puis pgBadger Fonctionne, mais quelquefois 1Go de logs toutes les 15s Volumineux Long à parser Pas de statistiques sur l’utilisation du cache par les requêtes

pg_stat_statements Vue en mémoire Entretenue par les sessions en temps réel Pas de dégradation de performances mesurable (<1%) 205 000 → 202 000 transactions par seconde pg_bench Pour chaque requête, nombreuses statistiques collectées

pg_stat_statements Pour chaque requête : Texte, nb appels temps total d’exécution,min/max/écart type nombre total d’enregistrements retournés accès au cache, volume de tri temps passé à faire des IO

pg_stat_statements Vraiment utilisable depuis PG 9.2 : normalisation de requêtes 9.4 : identifiant unique de requête (si search_path différent), requêtes stockées dans un fichier externe (et donc pas tronquées) 9.5 : ajout min_time, max_time, stddev_time

Utilisation shared_preload_libraries=’pg_stat_statements’ pg_stat_statements.max=10000 pg_stat_statements.track=top/all pg_stat_statements.track_utility=true/false Redémarrer (c’est une nouvelle zone de mémoire partagée) Create extension pg_stat_statements (où vous voulez)

utilisation Select … from pg_stat_statements Trier par : total_time desc (consomme des ressources et est lente) calls (ralentie par la latence réseau) shared_blks_hit (beaucoup d’accès au cache) temp_blks_read/write (beaucoup de tri) blk_read_time,blk_write_time : beaucoup d’IO pg_stat_statements_reset()

Limitations Pas d’exemple de requête (paramètres remplacés par ?) Pas d’historique (valeurs cumulées) ⇒ PoWA (PostgreSQL Workload Analyzer) Background Worker (capture automatique) Capture à intervalle régulier pg_stat_statements pg_stat_kcache : kernel. Temps système, cache système… pg_qualstat : prédicats hypopg : index hypothétiques, pour aide à l’indexation

Démo