<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de SQLpro &#187; Benchmark</title>
	<atom:link href="https://blog.developpez.com/sqlpro/ptag/benchmark/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/sqlpro</link>
	<description>Le SQL pour SQL Server, PostGreSQL et tous les autres SGBDR</description>
	<lastBuildDate>Thu, 15 Oct 2020 12:59:17 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Benchmark PostgreSQL vs SQL Server&#8230; comment biaiser !</title>
		<link>https://blog.developpez.com/sqlpro/p12959/langage-sql-norme/benchmark-postgresql-vs-sql-server-comment-biaiser</link>
		<comments>https://blog.developpez.com/sqlpro/p12959/langage-sql-norme/benchmark-postgresql-vs-sql-server-comment-biaiser#comments</comments>
		<pubDate>Tue, 17 Nov 2015 22:25:52 +0000</pubDate>
		<dc:creator><![CDATA[SQLpro]]></dc:creator>
				<category><![CDATA[Langage SQL (norme)]]></category>
		<category><![CDATA[MS SQL Server]]></category>
		<category><![CDATA[PostGreSQL]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[comparaison]]></category>
		<category><![CDATA[SQL server]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/sqlpro/?p=626</guid>
		<description><![CDATA[La mauvaise foi règne encore chez les aficionados de PostGreSQL&#8230; L&#8217;entreprise Red Hat, que je croyais sérieuse, à effectué un benchmark entre PostGreSQL et SQL Server stupéfiant de mauvaise foi&#8230; Voici mes remarques. À noter, ce comparatif porte sur une version payante de PostGreSQL ! On trouvera le benchmark dont je parle &#171;&#160;Comparing BenchmarkSQL Performance [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La mauvaise foi règne encore chez les aficionados de PostGreSQL&#8230; L&rsquo;entreprise Red Hat, que je croyais sérieuse, à effectué un benchmark entre PostGreSQL et SQL Server stupéfiant de mauvaise foi&#8230; Voici mes remarques. À noter, ce comparatif porte sur une version payante de PostGreSQL !<br />
<span id="more-626"></span><br />
On trouvera le benchmark dont je parle &laquo;&nbsp;Comparing BenchmarkSQL Performance on Red Hat® Enterprise Linux 5 to Windows Server Enterprise&nbsp;&raquo; à l&rsquo;URL :<br />
<a href="https://www.redhat.com/pdf/rhel/bmsql-postgres-sqlsrvr-v1.0-1.pdf" title="Comparing BenchmarkSQL Performance on Red Hat® Enterprise Linux 5 to Windows Server Enterprise" target="_blank">https://www.redhat.com/pdf/rhel/bmsql-postgres-sqlsrvr-v1.0-1.pdf</a></p>
<p>Passons sur le choix du benchmark : le TPC-C qui date de 1992 (soit 23 ans&#8230;) est constitué d&rsquo;une base de données qui comporte 9 tables et dont on peut trouver le détail à l&rsquo;URL :<br />
<a href="http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5-11.pdf" title="Détail du benchmark TPC-C" target="_blank">http://www.tpc.org/tpc_documents_current_versions/pdf/tpc-c_v5-11.pdf</a>. Qui aujourd&rsquo;hui utilise en production une base composée au plus de 9 tables ? En revanche il existe un benchmark plus moderne, le TPC-E composé de 33 tables nettement plus réaliste !</p>
<p><strong>TUNING DES OS</strong></p>
<p>À la page 10 dudit benchmark on trouve le paragraphe <em>3.3.1 (Operating System)</em> qui montre comment à été optimisé Linux.</p>
<p><a href="http://blog.developpez.com/sqlpro/files/2015/11/PostGreSQL-vs-SQL-Server-OS-Tuning.jpg"><img src="http://blog.developpez.com/sqlpro/files/2015/11/PostGreSQL-vs-SQL-Server-OS-Tuning.jpg" alt="PostGreSQL vs SQL Server OS Tuning" width="829" height="621" class="alignnone size-full wp-image-630" /></a></p>
<p>On y voit clairement que <strong>seul l&rsquo;OS Linux a été optimisé</strong>. Quelles optimisations ont été faites pour Windows ? <strong>Aucune !</strong></p>
<p>Or il est bien évident qu&rsquo;une installation standard de Windows pour héberger SQL Server n&rsquo;est pas optimale sans certains réglages :<br />
&#8211; désactivation des services inutiles (ce qui a été fait pour Linux et pas pour Windows)<br />
&#8211; désactivation du système d&rsquo;économie d’énergie (qui n&rsquo;existe pas sous Linux.. pas écolo les linuxiens !)<br />
&#8211; activation de Turbo Boost<br />
&#8211; activation de l&rsquo;Instant File Initialization pour le service SQL Server<br />
&#8211; activation du Lock Page in Memory pour SQL Server<br />
&#8230;</p>
<p><strong>TUNING DES SGBDR</strong></p>
<p>À la page 11 figure le paragraphe 3.3.3 (Database) qui montre comment a été optimisé PostGreSQL.</p>
<p><a href="http://blog.developpez.com/sqlpro/files/2015/11/PostGreSQL-vs-SQL-Server-database-Tuning.jpg"><img src="http://blog.developpez.com/sqlpro/files/2015/11/PostGreSQL-vs-SQL-Server-database-Tuning.jpg" alt="PostGreSQL vs SQL Server database Tuning" width="819" height="563" class="alignnone size-full wp-image-631" /></a></p>
<p>On y voit clairement que <strong>seul PostGreSQL a été optimisé</strong>. Red Hat revendique même sa tromperie : &laquo;&nbsp;<em>&#8230;no specific SQL Server tuning was performed</em>&nbsp;&raquo; !</p>
<p>Or il est bien évident que plusieurs optimisations sont nécessaires :<br />
&#8211; la ventilation du stockage des fichiers de données de la base tempdb (objets temporaires) en autant de fichiers d&rsquo;égales longueur que de CPU (donc au moins 2);<br />
&#8211; le dimensionnement correct des fichiers de la base de données à 40 Go pour les données et 10 Go pour les transactions avec à nouveau au moins 2 fichiers pour les données<br />
&#8211; la limitation de la RAM utilisée par SQL Server à au moins 44 Go (max server memory);<br />
&#8211; la limitation du parallélisme des requêtes à 4 (du fait que le serveur présente 2 CPU Quad Core et 4 LUN par agrégats RAID) et hausse du seuil de déclenchement à 12 (cost threshold for parallelism);<br />
&#8211; le positionnement du paramètre &laquo;&nbsp;optimize for ad hoc workloads&nbsp;&raquo; à 1 sinon les plans de requête ne sont pas mis en cache !<br />
&#8211; l&rsquo;élévation du délai de report des écritures physique de données (checkpoint), paramètre &laquo;&nbsp;recovery interval&nbsp;&raquo;, à 60 minutes pour coller au paramètre &laquo;&nbsp;checkpoint_timeout &nbsp;&raquo; positionné à 1 heure dans PostGreSQL (un délai tout à fait anormal entre nous, car cela pourrait s&rsquo;avérer dangereux en production&#8230;)<br />
&#8230;</p>
<p><strong>POSTGRESQL PLUS</strong></p>
<p>Très discrètement, le document montre que la version testée de PostGreSQL n&rsquo;est pas la version gratuite Open Source, mais la version payante fabriquée par EntrepriseDB et nommée &laquo;&nbsp;PostGreSQL PLUS.<br />
Nous n&rsquo;avons pas pu obtenir le prix d&rsquo;une telle version directement sur le site d&rsquo;EntrepriseDB, mais <a href="https://assets.digitalmarketplace.service.gov.uk/documents/93566/5258173757784064-pricing-document.pdf" title="PostGreSQL PLUS prix des licences" target="_blank">sur un autre document, provenant probablement du gouvernement britannique</a> ce prix apparait être 3 265 £ par CPU (socket), soit environ 4 700 €&#8230;<br />
En comparaison, SQL Server 2008 R2 version Web, suffisante pour ce benchmark, coute 4 246,41&#8230;</p>
<p><strong>LES RÉSULTATS</strong></strong></p>
<p>Comme on s&rsquo;y attendait, avec un tel paramétrage, PostGreSQL bât haut la main SQL Server ! <em>haut la main ?</em> <strong>pas si sûr&#8230;</strong></p>
<p><a href="http://blog.developpez.com/sqlpro/files/2015/11/PostGreSQL-vs-SQL-Server-Resultats.jpg"><img src="http://blog.developpez.com/sqlpro/files/2015/11/PostGreSQL-vs-SQL-Server-Resultats.jpg" alt="PostGreSQL vs SQL Server Resultats" width="731" height="645" class="alignnone size-full wp-image-632" /></a></p>
<p>Il faut vraiment y aller à la loupe pour voir la différence. En mesurant après impression avec une règle, j&rsquo;ai constaté un écart relatif de 3 à 5 % mesuré sur les entrées 40 et 140 de l&rsquo;histogramme&#8230;</p>
<p>Bref, il est très probable qu&rsquo;avec les réglages manquants pour Windows et SQL Server, Red Hat n&rsquo;aurait jamais publié un tel benchmark tant il aurait été défavorable à PostGreSQL fût-il PLUS !</p>
<p>Ce qui me navre c&rsquo;est que je croyais naïvement que Red Hat était une entreprise sérieuse !</p>
<p>***</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES<br />
Expert &nbsp;S.G.B.D &nbsp;relationnelles &nbsp; et &nbsp; langage &nbsp;S.Q.L<br />
Moste &nbsp;Valuable &nbsp;Professionnal &nbsp;Microsoft &nbsp;SQL Server<br />
Société SQLspot &nbsp;: &nbsp;modélisation, conseil, formation,<br />
optimisation, &nbsp;audit, &nbsp;tuning, &nbsp;administration &nbsp;SGBDR<br />
Enseignant: CNAM PACA, ISEN Toulon, CESI Aix en Prov.</div></div>
<p>L&rsquo;entreprise <a href="http://www.sqlspot.com">SQL Spot</a><br />
<strong>Le site web sur le </strong><a href="http://sqlpro.developpez.com/">SQL et les SGBDR</a></p>
<p><img src="http://blog.developpez.com/media/Microsoft_MVP_logo_vertical Brouard 400.jpg" width="400" height="135" alt="MVP Microsoft SQL
Server" /></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
