Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La première version bêta de PostgreSQL 11 est disponible en téléchargement :
Un aperçu des fonctionnalités à venir dans le SGBDRO libre

Le , par Michael Guilloux

213PARTAGES

11  0 
Le PostgreSQL Global Development Group a annoncé hier la sortie de la première version bêta de PostgreSQL 11, qui est disponible maintenant au téléchargement. Cette bêta 1 permet déjà de tester toutes les fonctionnalités et améliorations qui seront présentes dans la version stable de PostgreSQL 11.

La prochaine version du système de gestion de base de données relationnelle et objet (SGBDRO) se concentre sur les performances, le traitement de gros volumes de données et la facilité d'utilisation. Parmi les nouvelles fonctionnalités et améliorations les plus importantes, on notera avant tout des améliorations majeures pour le partitionnement. PostgreSQL 11 contient en effet plusieurs fonctionnalités qui améliorent le traitement des données dans les partitions. Il s'agit entre autres de :
  • la possibilité de partitionner par une clé de hachage (partitionnement par hachage) ;
  • les instructions UPDATE qui modifient une clé de partition déplacent maintenant les lignes affectées vers les partitions appropriées ;
  • l'amélioration des performances des requêtes SELECT grâce à l'élimination améliorée des partitions lors du traitement et de l'exécution des requêtes, ainsi que des analyses de partition parallélisé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.


Outre les améliorations liées au partitionnement, 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.

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.

PostgreSQL 11 apporte également des améliorations au parallélisme. En effet, 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. Dans cette version du SGBDRO, les fonctions Window prennent aussi entièrement en charge le standard SQL:2011.

La version précédente de PostgreSQL introduisait l'authentification SCRAM (Salted Challenge Response Authentication Mechanism) pour améliorer le stockage et la transmission des mots de passe en utilisant un protocole standard accepté. Rappelons que SCRAM est un protocole et un mécanisme de stockage de données pour prendre en charge l'authentification par mot de passe. PostgreSQL 11 introduit maintenant la liaison de canal (channel binding) pour l'authentification SCRAM, ce qui renforce la sécurité de l'utilisation de SCRAM en empêchant les attaques de type man-in-the-middle.

À ces principaux changements, s'ajoute 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.

Il y a encore beaucoup d'autres nouvelles fonctionnalités et améliorations qui ont été ajoutées à PostgreSQL 11, et qui ne sont pas nécessairement moins importantes que celles citées ici. Vous les trouverez toutes dans les notes de versions.

Avec la sortie de PostgreSQL 11 beta 1, le PostgreSQL Global Development Group invite également les développeurs à tester les nouvelles fonctionnalités dans leurs systèmes de base de données pour aider à éliminer les bogues ou autres problèmes qui pourraient exister. Il faut toutefois rappeler qu'il n'est pas conseillé d'exécuter PostgreSQL 11 Beta 1 dans vos environnements de production.

Source : Blog PostgreSQL

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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de 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.
2  0 
Avatar de 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 +
1  0 
Avatar de Anselme45
Membre extrêmement actif 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?
2  1 
Avatar de 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…
1  0 
Avatar de champomy62
Membre averti https://www.developpez.com
Le 17/10/2018 à 15:46
Il est temps de tester tout ça
0  0 
Avatar de 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 ?
0  0 
Avatar de 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 +
0  0 
Avatar de MaximeCh
Membre éclairé https://www.developpez.com
Le 19/10/2018 à 9:52
Zobi toujours pas de "CREATE TABLE B ( AS A INCLUDING COMMENTS );"
0  0 
Avatar de 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.
0  0 
Avatar de 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 +
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web