PostgreSQLfr.org Nouvelles fonctionnalités de la version 8.3
Principes de PostgreSQL Sécurité des données (ACID, MVCC) Respect du standard SQL Fonctionnalités entreprise Performances Documentation
Fonctionnalités majeures Vues, règles, séquences, jointures, sous- requêtes, etc. Triggers, curseurs Objets utilisateurs (types, fonctions, opérateurs, etc.) Héritage Journaux de transaction, PITR, LogShipping Nombreux langages de procédures (pgsql, perl, python, php, ruby, etc.) Nombreux encodages (dont l'Unicode)
Pour l'utilisateur : FTS Recherche plein texte (provenant du module contrib Tsearch2) Directement intégré dans le cœur du moteur Disponible dès la création de la base de données
Pour l'utilisateur : XML Provient du module contrib xml2 Validation automatique d'un champ de type xml Support des requêtes Xpath Support de XSLT Transformation directe d'une table, du résultat d'une requête ou d'un curseur en XML
Pour l'utilisateur : ENUM/UUID Support du type ENUM CREATE TYPE couleurs AS ENUM ('rouge', 'orange', 'jaune', 'vert', 'bleu', 'violet'); Tri possible ! Favorise la migration vers PostgreSQL Support du type UUID Universally Unique Identifier Standard RFC 4122
Pour l'utilisateur : ordre NULL Avant PostgreSQL 8.3, le tri plaçait les valeurs NULL à la fin (ordre ascendant) Avec PostgreSQL 8.3, l'ordre est sélectionnable : ORDER BY ma_colonne NULLS FIRST Fonctionne aussi pour la création des index Support de NULLS [ FIRST | LAST ] Support de [ ASC | DESC ]
Pour le développeur : curseurs Ajout du support de la direction pour l'instruction FETCH NEXT, PRIOR, FIRST, LAST, ABSOLUTE, RELATIVE, FORWARD, BACKWARD Nouvelle instruction : MOVE Déplacement sans récupération des résultats Nouvelle clause pour UPDATE/DELETE WHERE CURRENT OF : pour mettre à jour/supprimer la ligne actuelle du curseur
Pour le dévelopeur : RET. QUERY Avant PostgreSQL 8.3 FOR ligne IN SELECT * FROM ma_table RETURN NEXT ligne; END FOR; Avec PostgreSQL 8.3 RETURN QUERY SELECT * FROM ma_table; Avantages : simplicité du code rapidité de l'exécution
Pour le développeur : COST/ROWS Informations pour le planificateur ROWS : nombre de lignes renvoyées par la fonction (1000 par défaut) COST : coût d'exécution de la fonction Permet d'influencer positivement le planificateur
Pour le DBA : GSSAPI Nouvelle méthode d'authentification Passe par Kerberos
Pour le DBA : logs applicatifs Nouvelle méthode de journalisation applicative csvlog enregistre au format CSV Facile à récupérer dans une table COPY postgres_log FROM '/chemin/complet/vers/le/logfile.csv' WITH csv; La définition de la table est donnée dans le manuel
Pour le DBA : vues systèmes Nouvelle vue : pg_stat_bgwriter surveillance du processus d'écriture en tâche de fond Nouvelles colonnes waiting, xact_start pour pg_stat_activity tup_returned, tup_fetched, tup_inserted, tup_updated, tup_deleted pour pg_stat_database n_tup_hot_upd, n_live_tup, n_dead_tup pour pg_stat_{all,user,sys}_tables
Pour le DBA : options de logs log_autovacuum_min_duration trace les actions de l'autovacuum log_lock_waits trace si une session attend un verrou depuis un certain temps log_checkpoint trace l'activité des checkpoints log_temp_files trace les gros fichiers temporaires
Et les performances ? Support de l'asynchronous commit L'enregistrement des données est réparti sur le temps, il ne se fait plus à chaque COMMIT une fois cette option activée
Et les performances ? HOT Ré-utilisation de l'espace libre pour la majorité des UPDATE et DELETE Pas d'ajout d'entrées dupliquées dans les index
Et les performances ? Support des parcours synchronisés Une transaction XACT1 commence le parcours séquentiel de la table T1 XACT1 arrive à 10% de la table lue quand une transaction XACT2 commence lui-aussi un parcours séquentiel de la table T1 La lecture de XACT1 sert immédiatement à XACT2
Et les performances ? Meilleure gestion des identifiants de transaction Un identifiant n'est consommé que si une modification a lieu sur la base
Et au niveau applicatif ? Nouvelle option -X de initdb pour changer l'emplacement de stockage des journaux de transaction Nouvelles options –roles-only et –tablespaces- only de pg_dumpall pour ne sauvegarder que ces objets
Module contrib pg_standby, nouveau module contrib Outil parfait pour la commande à paramétrer dans restore_command, pour créer un Warm Server Standby
Où le télécharger ? Sources Binaires Linux Voir aussi dans les paquets de votre distribution Windows
Ressources Site de l'association francophone Site de la documentation traduite
PostgreSQLfr.org Cette association aide à la promotion de PostgreSQL dans la francophonie. Elle participe aux manifestations majeures autour des logiciels libres. Elle publie des articles, traduit du manuel aux applications. N'hésitez pas à nous demander de participer à des manifestations, réunions, conférences et adhérez !