Comparatif SIG, match retour
lun. 28 mai 2018 (PostgreSQL)En avril 2017, le site developpez.com publiait un article de Frédéric Brouard. Celui-ci comparait les performances des Système de Gestion de Base de Données PostgreSQL 9.6 et SQL Server 2016 sur des requêtes d'informations géographiques.
Ces tests étaient réalisés sur un serveur Windows 10 version Enterprise équipé de deux processeurs Intel Xeon de 12 cœurs hyperthreadés chacun, soit 48 cœurs. SQL Server était en moyenne 10 fois plus rapide que PostgreSQL.
À la lecture de cet article, il apparaissait que les requêtes étaient parallélisées sous SQL Server mais pas sous PostgreSQL. Le serveur PostgreSQL n'ayant pas été configuré, la parallélisation apparue en version 9.6 n'y était pas activé.
Cet article soulevait deux interrogations :
- quel était l'impact de l'utilisation du système d'exploitation Windows sur les performances des deux SGBD ?
- l'activation de la parallélisation sur PostgreSQL rééquilibrerait-il le rapport entre les moteurs ?
Avec Cyril Chaboisseau, nous avons profité de la disponibilité de SQL Server 2017 sur Linux pour répondre à ces 2 interrogations.
Côté PostgreSQL, nous passons à la version 10.
SQL Server 2017 versus PostgreSQL 10 - de l’autre côté du miroir
Pour tester l'impact de la parallélisation, nous avons écrit un script python permettant de lancer un certain nombre de fois la requête en parallèle. Nous pouvons ainsi analyser le comportement des deux moteurs lorsqu’ils sont fortement sollicités.
Certaines requêtes pouvaient être améliorées. Nous avons proposé un certain nombre d'optimisations.
Nous avons réalisé ces tests :
- avec une machine plus modeste, tant pour la mémoire que pour les processeurs ;
- sur Linux ;
- avec des versions plus récentes : SQL Server 2017 et PostgreSQL 10 ;
- en lançant les requêtes en parallèle ;
- en optimisant certaines requêtes.
Commentaires: