Disponibilité générale de PostgreSQL 11 :
Un aperçu des principales fonctionnalités du SGBDRO libre

Le , par Michael Guilloux, Chroniqueur Actualités
Le 11 octobre, le PostgreSQL Global Development Group a annoncé la disponibilité au téléchargement de la première release candidate du SGBD relationnel et objet libre. La RC1 devrait être identique à la version stable, bien que quelques correctifs puissent être appliqués avant la disponibilité générale de PostgreSQL 11. Cela dit, quelles sont les nouveautés attendues ?

Toutes les fonctionnalités de PostgreSQL 11 ont été annoncées en mai dernier, lors de la sortie de la Beta 1. Comme nous l'avons rapporté, la prochaine version majeure de PostgreSQL se concentre sur les performances, le traitement de gros volumes de données et la facilité d'utilisation.

Améliorations majeures pour le partitionnement

PostgreSQL 11 contient plusieurs fonctionnalités qui améliorent le traitement des données dans les partitions. Elles incluent la possibilité de partitionner par une clé de hachage (partitionnement par hachage) ; le fait que les instructions UPDATE qui modifient une clé de partition déplacent maintenant les lignes affectées vers les partitions appropriées ; la prise en charge de PRIMARY KEY, FOREIGN KEY, des index et des déclencheurs sur les partitions ; etc.

PostgreSQL 11 introduit également la possibilité pour une requête de distribuer le regroupement et l'agrégation aux tables partitionnées avant l'agrégation finale. Cette fonctionnalité est désactivée par défaut, mais pour l'activer, vous devez définir enable_partitionwise_aggregate = on dans votre fichier de configuration ou pendant votre session ou transaction.

Améliorations au parallélisme

Plusieurs fonctionnalités ajoutées à cette version tirent parti de l'infrastructure de requête parallèle et offrent des améliorations significatives de performances. Cela inclut entre autres les jointures par hachage parallélisées et les CREATE INDEX parallélisés pour les index d'arbre-B.

Procédures stockées

PostgreSQL 11 introduit des procédures stockées SQL qui permettent aux utilisateurs d'utiliser des transactions intégrées (BEGIN, COMMIT/ROLLBACK) dans une procédure. Les procédures peuvent être créées à l'aide de la commande CREATE PROCEDURE et exécutées à l'aide de la commande CALL.

Compilation Just-In-Time

On notera encore la prise en charge de la compilation JIT (Just-In-Time) pour optimiser l'exécution de code SQL et d'autres opérations au moment de l'exécution. En utilisant des composants du projet LLVM, l'introduction de la prise en charge de JIT dans PostgreSQL accélère les requêtes qui utilisent des expressions (par exemple des clauses WHERE), des listes cibles, des agrégats, des projections, ainsi que certaines opérations internes. Le framework JIT de PostgreSQL est aussi conçu pour permettre un futur travail d'optimisation.

Fonctions Window

Dans cette version du SGBDRO, les fonctions Window prennent entièrement en charge le standard SQL:2011.


Améliorations de l'expérience utilisateur

À ces principaux changements, s'ajoutent aussi des améliorations de l'expérience utilisateur. Le PostgreSQL Global Development Group reconnaît en effet que, même si PostgreSQL contient un ensemble de fonctionnalités robustes, elles ne sont pas toutes faciles à utiliser et peuvent nécessiter des solutions de contournement dans les environnements de développement et de production. C'est le cas par exemple de l'utilisation de la commande ALTER TABLE … ADD COLUMN où la colonne nouvellement créée a une valeur DEFAULT qui n'était pas NULL. Avant PostgreSQL 11, lors de l'exécution de cette instruction, PostgreSQL réécrivait la totalité de la table, ce qui, sur les grosses tables dans des systèmes actifs, pouvait provoquer beaucoup de problèmes. PostgreSQL 11 supprime maintenant le besoin de réécrire la table dans la plupart des cas. Ainsi, l'exécution de l’instruction ALTER TABLE ... ADD COLUMN ... DEFAULT ... devrait être extrêmement rapidement.

L'impossibilité de quitter intuitivement la ligne de commande PostgreSQL (psql) était également pénible pour certains utilisateurs. De nombreux utilisateurs se sont plaints parce qu'ils essayaient de quitter la ligne de commande avec les commandes quit et exit, alors que la commande pour le faire est \q. Le PostgreSQL Global Development Group dit avoir pris en compte ces frustrations et ajouté maintenant la possibilité de quitter la ligne de commande en utilisant les mots-clés quit et exit, en espérant que quitter une session PostgreSQL sera désormais plus agréable pour les utilisateurs de PostgreSQL.

Vous trouverez la liste exhaustive des nouveautés et améliorations sur le site officiel de PostgreSQL. La disponibilité générale de PostgreSQL 11 est prévue pour le 18 octobre 2018.

Mise à jour le 18/10/2018 : la version stable de PostgreSQL 11 est enfin disponible.

Sources : Blog PostgreSQL (sortie de la RC1), Blog PostgreSQL (disponibilité générale)

Et vous ?

Que pensez-vous des nouveautés de PostgreSQL 11 ?
Lesquelles appréciez-vous le plus ? Pourquoi ?
Comment trouvez-vous PostgreSQL par rapport aux autres SGDB ? Quels SGBD utilisez-vous ?

Voir aussi :

Google annonce le support de PostgreSQL pour Cloud SQL, son service de base de données hébergé sur Google Cloud Platform
DB-Engines Ranking : PostgreSQL désigné système de gestion de base de données de l'année 2017, quels étaient vos SGBD préférés en 2017 ?
PostgreSQL 10 est disponible en téléchargement : quelles sont les nouveautés de la dernière version du SGBD libre ?
Emploi développeur 2017 : les SGBD les plus demandés et les mieux payés, MySQL, MongoDB et PostgreSQL plus demandés mais MongoDB et DB2 mieux payés
Microsoft Azure embarque une nouvelle offre NoSQL et deux nouveaux services de bases de données pour un support natif de MySQL et PostgreSQL


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de champomy62 champomy62 - Membre actif https://www.developpez.com
le 17/10/2018 à 15:46
Il est temps de tester tout ça
Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 17/10/2018 à 17:27
Enfin de véritables procédures stockées !!! C'était le manque le plus crucial... Autrefois les aficionados de PostGreSQL me répondait que cela n'était pas nécessaire lorsque je leur reprochait de ne pas avoir de SP !!!

A +
Avatar de philouZ philouZ - Membre confirmé https://www.developpez.com
le 18/10/2018 à 9:05
C'est cool que les procédures stockées fassent leur apparition. Moi qui doit migrer un projet sur PostgreSQL ça va me faire du bien. Je regrette toutefois 2 choses, ce serait que, comme le fait SQL server, on est au minimum une fonctionnalité comme le TDE et mieux encore comme Always encrypted.

A suivre peut-être dans la v. 12 ?
Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 18/10/2018 à 15:52
Citation Envoyé par philouZ Voir le message
Je regrette toutefois 2 choses, ce serait que, comme le fait SQL server, on est au minimum une fonctionnalité comme le TDE et mieux encore comme Always encrypted.

A suivre peut-être dans la v. 12 ?
ça m'étonnerait fort vu que ce sont des fonctionnalités qui l'une touche fortement au système (TDE) et l'autre qui concerne le code applicatif (Always encrypted) domaine inconnu de PG !

A +
Avatar de MaximeCh MaximeCh - Membre averti https://www.developpez.com
le 19/10/2018 à 9:52
Zobi toujours pas de "CREATE TABLE B ( AS A INCLUDING COMMENTS );"
Avatar de philouZ philouZ - Membre confirmé https://www.developpez.com
le 19/10/2018 à 17:17
ça m'étonnerait fort vu que ce sont des fonctionnalités qui l'une touche fortement au système (TDE) et l'autre qui concerne le code applicatif (Always encrypted) domaine inconnu de PG !

A +
Il pourrait faire un truc à leur sauce ce serait top parce que là on est obligé de chiffrer le disque sur lequel est posé la BDD + un chiffrement des données sensibles directement par l'applicatif. Résultat pas hyper sécurisé selon moi et plus lent que ce qui pourrait être fait nativement.
Avatar de Anselme45 Anselme45 - Membre éprouvé https://www.developpez.com
le 20/10/2018 à 9:31
Citation Envoyé par philouZ Voir le message
C'est cool que les procédures stockées fassent leur apparition. Moi qui doit migrer un projet sur PostgreSQL ça va me faire du bien. Je regrette toutefois 2 choses, ce serait que, comme le fait SQL server, on est au minimum une fonctionnalité comme le TDE et mieux encore comme Always encrypted.

A suivre peut-être dans la v. 12 ?
Je m'étonne des commentaires du style "Super! Enfin des procédures stockées dans PostgreSQL!"

Nous développons des projets utilisant des "procédures stockées" dans PostgreSQL depuis sa version 8! Simplement, cela ne s’appelle pas "Stored procedures" mais "Functions".

Cette nouvelle version apporte peut-être une amélioration du concept mais qu'est-ce qui permet à certains d'affirmer que la notion de "procédures stockées" n’existait pas jusqu'à ce jour?
Avatar de ced ced - Rédacteur/Modérateur https://www.developpez.com
le 21/10/2018 à 13:50
Citation Envoyé par Anselme45 Voir le message
Cette nouvelle version apporte peut-être une amélioration du concept mais qu'est-ce qui permet à certains d'affirmer que la notion de "procédures stockées" n’existait pas jusqu'à ce jour?
À mon sens, la principale différence apportée par l'apparition des procédures stockées dans la nouvelle version de PostgreSQL, c'est la possibilité d'y inclure des transactions, ce qui n'est pas possible dans une fonction.
Avatar de philouZ philouZ - Membre confirmé https://www.developpez.com
le 21/10/2018 à 19:18
Cette nouvelle version apporte peut-être une amélioration du concept mais qu'est-ce qui permet à certains d'affirmer que la notion de "procédures stockées" n’existait pas jusqu'à ce jour?
Peut-être que le fait que ce soit annoncé par PostgreSQL…

Une fonction est faite au départ pour ne faire qu'une chose (un calcul, une vérification,...) et normalement renvoyer une valeur (vrai ou faux à minima). Elle peut ainsi être utilisée au sein d'une requête ou d'une procédure stockée. De plus, une fonction ne permet pas de lancer une transaction lors de son exécution.

Une procédure, comme son nom l'indique permet d'effectuer une ou plusieurs opérations dans un ordre défini. Elle peut également lancer une transaction pour sécuriser l'ajout ou la mise à jour de données. Ainsi si une opération échoue, on peut revenir à l'état précédent et passer à l'étape suivante ou tout annuler.

Je peux me tromper et certains me corrigeront si je dis des bêtises, mais je pense que là est tout l'intérêt de la procédure stockée, et de cette manière chaque "type" a sa fonction…
Avatar de SQLpro SQLpro - Rédacteur https://www.developpez.com
le 23/10/2018 à 15:45
Citation Envoyé par Anselme45 Voir le message
Je m'étonne des commentaires du style "Super! Enfin des procédures stockées dans PostgreSQL!"

Nous développons des projets utilisant des "procédures stockées" dans PostgreSQL depuis sa version 8! Simplement, cela ne s’appelle pas "Stored procedures" mais "Functions".

Cette nouvelle version apporte peut-être une amélioration du concept mais qu'est-ce qui permet à certains d'affirmer que la notion de "procédures stockées" n’existait pas jusqu'à ce jour?
Non monsieur, désolé de vous le dire, mais il y a une différence fondamentale entre une procédure qui encapsule sa propre logique transactionnelle et une fonction qui par nature est atomique.

À votre avis, si PG vient de clamer qu'ils ont enfin rajouté le support des procédures stockées ce serait donc :
  • RÉPONSE 1 : du simple pipo
  • RÉPONSE 2 : un coup marketing
  • RÉPONSE 3 : une nouvelle fonctionnalité qui manquait à PG


je vous laisse deviner !

Pour votre culture personnelle il serait peut être temps de vous former au langage SQL qui distingue bien les procédures stockées ("Stored Procedure") des UDF (user Defined Function"), tous cela faisant partie du module normatif (ISO) PSM ("Persistant Stored Module") initié à l'origine en 1986 par Sybase SQL Server et reprit par presque tous les SGBDR à l'exception notable de PostGreSQL...

Pour cela mon livre, comme mon site web peuvent vous y aider...


Enfin, le fait que vous fassiez n'importe quoi depuis longtemps ne garantie pas que vous fassiez les choses correctement !

A +
Contacter le responsable de la rubrique Accueil