Les nouveautés dans PostgreSQL 11
PostgreSQL 11 comprend de nombreuses nouveautés.
Parallélisme amélioré
Le parallélisme est désormais pris en charge au niveau des instructions CREATE TABLE … AS, SELECT INTO et CREATE MATERIALIZED VIEW, CREATE INDEX. Le parallélisme se règle à l’aide des directives max_parallel_workers et max_parallel_workers_per_gather.
Valeurs par défaut
Dans la nouvelle version du RDBMS, l’affectation d’une valeur par défaut remplit la nouvelle colonne avec cette valeur, là où dans les versions antérieures, PostgreSQL inscrivait la valeur nulle. L’instruction ALTER TABLE … ADD COLUMN … DEFAULT n’amène plus la réécriture complète d’une table.
Partitionnement de tables
Les tables partitionnées prennent désormais en charge les clés primaires et les index. L’exécution d’un ordre UPDATE entraîne le déplacement des données dans les partitions de tables. Les requêtes sur ces tables utilisent le regroupement, si vous l’activez dans le fichier de configuration postgresql.conf, à l’aide de la directive enable_partitionwise_aggregate passée à on. Attention à laisser la valeur de la directive enable_partition_pruning à on, de manière à prendre en compte les tables partitionnées au niveau de l’optimiseur de requêtes !
Procédures stockées
La création et l’appel de procédures stockées peuvent se faire à l’aide des instructions CREATE PROCEDURE et CALL. Les transactions et les instructions COMMIT et ROLLBACK sont maintenant supportées dans les procédures stockées.
CREATE TABLE test (a int); CREATE PROCEDURE transaction_test() AS $$ BEGIN FOR i IN 0..9 LOOP INSERT INTO test (a) VALUES (i); IF i % 2 = 0 THEN RAISE NOTICE 'i=%, txid=% a été annulée', i, txid_current(); COMMIT; ELSE RAISE NOTICE 'i=%, txid=% a été validée', i, txid_current(); ROLLBACK; END IF; END LOOP; END $$ LANGUAGE PLPGSQL; CALL transaction_test();
JIT
PostgreSQL 11 prend en charge la compilation Just In Time et accélère l’exécution des clauses WHERE dans les instructions SQL, à la condition d’inscrire de passer la directive jit à on dans le fichier de configuration de l’instance, après avoir installé le paquet postgresql11–llvmjit.
Fonctions Window
La nouvelle version du SGBDR Open Source utilise désormais les fonctions Window (OVER… PARTITION BY… ORDER BY… ) définies dans le standard SQL 2011.
QUIT, EXIT
Les développeurs de PostgreSQL permettent l’utilisation de QUIT et EXIT dans l’interpréteur psql. Cette fonctionnalité était très attendue.
Index couvrant
A la manière de SQL Server, vous pouvez désormais intégrer une ou plusieurs colonne de données à vos index en utilisant la clause INCLUDE.
Source : PostgreSQL 11 release notes