J’ai récemment posté un commentaire à un article de ce blog :
expert-postgresql.fr
malheureusement ma réponse a rapidement été modérée sous la forme d’un poubellisation !
Elle n’avait cependant aucune remarque diffamatoire ni désobligeante, mais rétablissait certaines vérités.
Comme ce n’est pas la première fois que mes propos critiques dérangent je pense que la communautés PosGreSQL est beaucoup moins libre qu’on ne le pense….
Voici donc mon commentaire accompagné d’une reprise de cet article…
1 – cycle de production de PostGreSQL
»
PostgreSQL stabilise et distribue une nouvelle version majeure de sa base de données chaque année.
[..]
Bien sûr, très peu de projets industriels peuvent se permettre de revoir leur architecture, leurs procédures et leur intégration SQL chaque année, et même dans le milieu très dynamique des services web cela n’arrive quasiment pas.Aussi les versions de PostgreSQL sont-elles maintenues pendant au moins cinq ans, les versions courantes de PostgreSQL sont donc au nombre de 5 à 7 selon les moments de l’année.
»
Mon commentaire sur ce point :
Vous affirmez que le rythme des versions de PostGreSQL est très élevé… Une toutes les 6 mois à vous lire…
Faisons la comparaison…
Rythmes des versions de SQL Server
-------------- ------------- ------------
2008 RTM 10.00.1600 07/08/2008
2008 SP1 10.00.2531 07/04/2009
2008 SP2 10.00.4000 29/09/2010
2008 SP3 10.00.5538 04/07/2015
2008 SP4 10.00.6000 30/09/2014
2008 R2 RTM 10.50.1617 14/06/2010
2008 R2 SP1 10.50.2500 09/10/2012
2008 R2 SP2 10.50.4000 26/06/2012
2008 R2 SP3 10.50.6000 26/09/2014
2012 RTM 11.00.2100 06/03/2012
2012 SP1 11.00.3000 06/11/2013
2012 SP2 11.00.5343 14/07/2014
2014 RTM 12.00.2000 01/01/2014
2014 SP1 12.00.4100 14/05/2015
Soit 14 versions en 6 ans, plus de 2 par an dont 4 versions majeures… Rien à envier donc à PostGreSQL !
PostgreSQL n’a eu dans cette même période que :
2 versions majeures : la 8 en 2005 et la 9 en 2010
En tout, de 2008 Ã 2015 il y a eu 7 versions mineures/majeures, soit 2 fois moins que SQL Server…
En sus les versions de SQL Server sont maintenues par le support Microsoft de manière publique avec un décalage de 2 versions majeures (soit 6 ans) et de manière payante (support étendue) près du double…
Fin du support étendu des différentes versions :
SQL Server 2005 : Le 12 Avril 2016 soit 11 ans
SQL Server 2008 : Le 09 Juillet 2019 soit 11 ans
SQL Server 2008 R2 : Le 09 Juillet 2019 soit 9 ans
SQL Server 2012 : Le 12 Juillet 2022 soit 10 ans
2) Avancées technologiques
»
Il existe ensuite de nombreux points techniques donnant un avantage très net à PostgreSQL, soit qu’il s’agisse d’innovations technologiques issues de la recherche, telles les « Serializable snapshot isolation » (ou SSI)…
»
Mon commentaires sur ce point :
Vous parlez du niveau d’isolation en invoquant le « Serializable snapshot isolation »
Mais PostGreSQL est toujours incapable d’utiliser le niveau d’isolation normatif READ UNCOMMITTED qui permet d’éviter tout verrou.
SQL Server dispose depuis la version 2005 du niveau d’isolation SNAPSHOT en 2 modes différents :
SNAPSHOT et READ COMMITTED SNAPSHOT
En sus dans SQL Server il est possible de changer le niveau d’isolation à tout moment, y compris au sein même d’une transaction, ce qui n’est pas le cas dans PostGreSQL. Ainsi, le code suivant marche sous SQL Server et provoque une erreur dans PostGreSQL :
BEGIN TRANSACTION;
UPDATE TEST_STATS
SET C2 = UPPER(C2) WHERE c1 = 181092;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
UPDATE TEST_STATS
SET C2 = UPPER(C2) WHERE c1 = 181099;
COMMIT;
3) Facilité de codage
»
Bénéficier de PostgreSQL pour résoudre cet ensemble de problème permet de ne pas avoir à les résoudre à nouveau dans votre application (quel jour serons-nous dans trois mois ? SELECT to_char(date ‘today’ + 3 * interval ‘1 month’, ‘Day’); est sûrement plus facile à utiliser que n’importe quel autre code, les développeurs lisant cela seront sûrement d’accord).
»
Et mon commentaire
Vous pensez sincèrement que la requête suivante (SQL Server) :
est nettement plus compliquée que celle-ci (PostGreSQL) ?
…pour reprendre votre exemple !
En sus PostGreSQL donne un résultat en anglais, même si l’installation a été faite avec une locale française, alors que SQL Server la donne dans la langue de Victor Hugo si l’utilisateur a été déclaré comme Français (avec la cédille sans les tables système…) !
4) Coût des licences
»
Bien évidemment, tout cela sans s’acquitter de coûts de licence appliqués par serveur ou qui dépendent de la capacité et du nombre d’installations dont vous avez besoin pour déployer une architecture.
»
Et mon commentaire :
Vous invoquez le coût inexistant des licences PostGreSQL… Vous avez bien raison. mais ça c’est la bidouille. MS SQL Server présente aussi une version gratuite, mais qui l’utilise de manière industrielle ?
Les entreprises prennent des assurances en achetant fort cher des contrats d’assistance auprès de boîtes comme 2ndQuadrant, Smile ou Dalibo en France… Qui ne font jamais du 24h/24 ni du 7j/7 !
Et ces mêmes entreprises ont souvent besoin de recourir à des prestataires PostGreSQL pour régler certains problèmes…
Alors que lorsque vous payez une licence SQL Server, vous avez droit au support 24/24 7/7…
Expert S.G.B.D relationnelles et langage S.Q.L
Moste Valuable Professionnal Microsoft SQL Server
Société SQLspot : modélisation, conseil, formation,
optimisation, audit, tuning, administration SGBDR
Enseignant: CNAM PACA, ISEN Toulon, CESI Aix en Prov.
L’entreprise SQL Spot
Le site web sur le SQL et les SGBDR