{"id":8956,"date":"2022-03-25T08:01:04","date_gmt":"2022-03-25T07:01:04","guid":{"rendered":"https:\/\/blog.capdata.fr\/?p=8956"},"modified":"2022-03-25T08:01:04","modified_gmt":"2022-03-25T07:01:04","slug":"identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/","title":{"rendered":"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8956&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8956&#038;title=Identifier%20une%20requ%C3%AAte%20consommatrice%20via%20le%20palmar%C3%A8s%20SQL%20Server%20AllDB\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Identifier%20une%20requ%C3%AAte%20consommatrice%20via%20le%20palmar%C3%A8s%20SQL%20Server%20AllDB&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8956\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p>Il y a quelques ann\u00e9es nous avons commenc\u00e9 \u00e0 r\u00e9orienter nos efforts de d\u00e9veloppement de nos agents de supervision <a href=\"https:\/\/capdata.fr\/dbadistance\">AllDB<\/a> vers l&#8217;identification des probl\u00e8mes de performance, parce que c&#8217;est finalement le fond de notre travail au quotidien, et que cela n\u00e9cessite non seulement des comp\u00e9tences, mais aussi des outils de trace et de suivi des requ\u00eates consommatrices. L&#8217;id\u00e9e \u00e9tait de pouvoir identifier visuellement et le plus simplement possible un point de contention, selon plusieurs crit\u00e8res et r\u00e9cup\u00e9rer suffisamment d&#8217;informations pour pouvoir rapidement commencer une analyse sans avoir \u00e0 se connecter \u00e0 l&#8217;environnement concern\u00e9. Ces concepts ont donn\u00e9 ce que nous avons appel\u00e9 par la suite le <a href=\"https:\/\/www.linkedin.com\/pulse\/identifier-un-probl%C3%A8me-de-performance-avec-le-alldb-david-baffaleuf\/?originalSubdomain=fr\">palmar\u00e8s de requ\u00eates<\/a>, et qui a \u00e9t\u00e9 int\u00e9gr\u00e9 \u00e0 tous nos agents, pour Oracle, SQL Server, MySQL, PostgreSQL et MongoDB. <\/p>\n<p>Une raison suppl\u00e9mentaire nous a pouss\u00e9 dans cette direction : la volont\u00e9 galopante qu&#8217;ont les entreprises de migrer leurs bases de donn\u00e9es on-premise vers des services manag\u00e9s du cloud (GCP, Amazon RDS, Azure, et les autres). La cruelle r\u00e9alit\u00e9 est que l&#8217;on ne gagne pas toujours en performance \u00e0 passer dans le cloud. Et si les clouders vous vantent les m\u00e9rites de l&#8217;\u00e9lasticit\u00e9 du cloud, votre portefeuille lui n&#8217;est pas \u00e9lastique \u00e0 l&#8217;infini. Il vous faut des outils d&#8217;analyse et de compr\u00e9hension des probl\u00e8mes de performance pour pouvoir maintenir un contr\u00f4le FINOPS sur les p\u00e9rim\u00e8tres que vous avez d\u00e9ploy\u00e9, sinon c&#8217;est l&#8217;escalade, et sous la pression la tentation de toujours ajouter des ressources pour d\u00e9bloquer l&#8217;activit\u00e9.  <\/p>\n<p>Aujourd&#8217;hui je propose de pr\u00e9senter les fonctionnalit\u00e9s du palmar\u00e8s pour SQL Server, et nous partirons ensuite d&#8217;un cas concret d&#8217;incident anonymis\u00e9 pour voir comment on arrive avec un tel outil \u00e0 mettre le doigt rapidement sur la requ\u00eate SQL \u00e0 l&#8217;origine du probl\u00e8me. A noter que contrairement au Query Store, le palmar\u00e8s SQL Server est compatible \u00e0 partir de SQL Server 2012, en Standard comme en Enterprise Edition. <\/p>\n<h2>Le sympt\u00f4me :<\/h2>\n<p>Lundi matin, une alerte arrive dans la supervision concernant un serveur dans notre p\u00e9rim\u00e8tre de support, &#8216;<em>File System sous le seuil<\/em>&#8216;, et malgr\u00e9 le positionnement de seuil qui nous permet souvent de r\u00e9agir avant qu&#8217;il ne soit trop tard, la saturation est d\u00e9j\u00e0 l\u00e0. On ne vit pas dans un monde parfait, et parfois toutes les s\u00e9curit\u00e9s mises en place ne suffisent pas, surtout quand on remplit 230Gb de volume en l&#8217;espace de quelques minutes. Il para\u00eet que la nature a horreur du vide :<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm1-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm1-1.png\" alt=\"\" width=\"835\" height=\"315\" class=\"aligncenter size-full wp-image-8960\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm1-1.png 835w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm1-1-300x113.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm1-1-768x290.png 768w\" sizes=\"auto, (max-width: 835px) 100vw, 835px\" \/><\/a><br \/>\nRapide corr\u00e9lation pour associer cette surconsommation d&#8217;espace \u00e0 une utilisation massive d&#8217;espace disque dans tempdb (<em>cliquer pour agrandir<\/em>):<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2.png\" alt=\"\" width=\"1700\" height=\"443\" class=\"aligncenter size-full wp-image-8959\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2.png 1700w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2-300x78.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2-1024x267.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2-768x200.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm2-1536x400.png 1536w\" sizes=\"auto, (max-width: 1700px) 100vw, 1700px\" \/><\/a><\/p>\n<p>OK donc un traitement a rempli la base tempdb tr\u00e8s rapidement et tr\u00e8s massivement, ce qui a provoqu\u00e9 une saturation de l&#8217;espace disque et une interruption de certains services. <\/p>\n<h2>-> Enter the &#8216;<em>palmar\u00e8s<\/em>&#8216; :<\/h2>\n<p>Le palmar\u00e8s AllDB pour SQL Server propose de regarder le probl\u00e8me de performance selon plusieurs angles diff\u00e9rents:<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3.png\" alt=\"\" width=\"1581\" height=\"655\" class=\"aligncenter size-full wp-image-8962\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3.png 1581w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3-300x124.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3-1024x424.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3-768x318.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3-1536x636.png 1536w\" sizes=\"auto, (max-width: 1581px) 100vw, 1581px\" \/><\/a><br \/>\n&#8211; <strong>Palmar\u00e8s SQL<\/strong> : va rechercher les requ\u00eates normalis\u00e9es (c&#8217;est \u00e0 dire les requ\u00eates &#8216;semblables&#8217;, sans la partie litt\u00e9rale des arguments de recherche par exemple) qui auront eu le plus d&#8217;impact selon un crit\u00e8re (CPU, m\u00e9moire, lectures disques, temps d&#8217;ex\u00e9cution total, etc&#8230;) et sur une p\u00e9riode donn\u00e9e. Chaque histogramme empil\u00e9 repr\u00e9sente une unit\u00e9 de temps, et chaque fraction de cet histogramme une requ\u00eate (<em>cliquer pour agrandir<\/em>):<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8.png\" alt=\"\" width=\"1560\" height=\"483\" class=\"aligncenter size-full wp-image-8966\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8.png 1560w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8-300x93.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8-1024x317.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8-768x238.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm8-1536x476.png 1536w\" sizes=\"auto, (max-width: 1560px) 100vw, 1560px\" \/><\/a><br \/>\n&#8211; <strong>Ad-Hoc SQL<\/strong> : va simplement remonter le top 10 des requ\u00eates adhoc (donc non normalis\u00e9es) par clich\u00e9 et par crit\u00e8re (CPU, lectures disques, lectures logiques) :<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1.png\" alt=\"\" width=\"1755\" height=\"731\" class=\"aligncenter size-full wp-image-8969\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1.png 1755w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1-300x125.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1-1024x427.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1-768x320.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm9-1-1536x640.png 1536w\" sizes=\"auto, (max-width: 1755px) 100vw, 1755px\" \/><\/a><br \/>\n&#8211; <strong>Tables &#038; Indexes<\/strong>: prend une photo du buffer pool et cartographie son contenu (bases, tables, indexes) et l&#8217;\u00e9volution au cours du temps:<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10.png\" alt=\"\" width=\"1560\" height=\"483\" class=\"aligncenter size-full wp-image-8970\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10.png 1560w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10-300x93.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10-1024x317.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10-768x238.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm10-1536x476.png 1536w\" sizes=\"auto, (max-width: 1560px) 100vw, 1560px\" \/><\/a><br \/>\nDans une autre vue, il calcule aussi un palmar\u00e8s mais des objets cette fois, en lecture ou en \u00e9criture, et l\u00e0 aussi sous la forme d&#8217;histogrammes empil\u00e9s:<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm11.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm11.png\" alt=\"\" width=\"1393\" height=\"461\" class=\"aligncenter size-full wp-image-8971\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm11.png 1393w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm11-300x99.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm11-1024x339.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm11-768x254.png 768w\" sizes=\"auto, (max-width: 1393px) 100vw, 1393px\" \/><\/a><br \/>\n&#8211; <strong>Plans d&#8217;ex\u00e9cution<\/strong> : aborde le probl\u00e8me par les plans: quels sont les plans les plus co\u00fbteux ?<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12.png\" alt=\"\" width=\"1735\" height=\"477\" class=\"aligncenter size-full wp-image-8972\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12.png 1735w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12-300x82.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12-1024x282.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12-768x211.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm12-1536x422.png 1536w\" sizes=\"auto, (max-width: 1735px) 100vw, 1735px\" \/><\/a><br \/>\nQuelles sont les pr\u00e9conisations de placement d&#8217;index ?<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/plan14.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/plan14.png\" alt=\"\" width=\"1428\" height=\"275\" class=\"aligncenter size-full wp-image-8973\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/plan14.png 1428w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/plan14-300x58.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/plan14-1024x197.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/plan14-768x148.png 768w\" sizes=\"auto, (max-width: 1428px) 100vw, 1428px\" \/><\/a><br \/>\nDe quelle mani\u00e8re une m\u00eame requ\u00eate peut utiliser diff\u00e9rents plans et ainsi mettre en \u00e9vidence les variations de performance en passant d&#8217;un plan \u00e0 l&#8217;autre ?<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13.png\" alt=\"\" width=\"1733\" height=\"483\" class=\"aligncenter size-full wp-image-8974\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13.png 1733w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13-300x84.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13-1024x285.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13-768x214.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm13-1536x428.png 1536w\" sizes=\"auto, (max-width: 1733px) 100vw, 1733px\" \/><\/a><br \/>\nSur la s\u00e9lection d&#8217;une requ\u00eate, on peut visualiser les diff\u00e9rents plans qu&#8217;elle a utilis\u00e9, quels sont les plus performants:<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15.png\" alt=\"\" width=\"1731\" height=\"431\" class=\"aligncenter size-full wp-image-8978\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15.png 1731w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15-300x75.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15-1024x255.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15-768x191.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm15-1536x382.png 1536w\" sizes=\"auto, (max-width: 1731px) 100vw, 1731px\" \/><\/a><\/p>\n<p>&#8211; <strong>Recherche<\/strong> : comme on historise tout (plans, op\u00e9rateurs, objets, requ\u00eates, advisors&#8230;) on peut faire une recherche ensuite sur tous ces crit\u00e8res et retrouver dans quelles sections ils sont apparus. <\/p>\n<h2>Pour revenir \u00e0 notre probl\u00e8me de tempdb&#8230;<\/h2>\n<p>Parmi les nombreuses causes qui peuvent \u00eatre \u00e0 l&#8217;origine d&#8217;un remplissage de tempdb, il y a notamment le risque d&#8217;erreur d&#8217;estimation des cardinalit\u00e9s dans un plan qui peut conduire \u00e0 sous-\u00e9valuer le besoin en m\u00e9moire (<em>aka <\/em><a href=\"https:\/\/www.youtube.com\/watch?v=vDdSEkzQVY4\" rel=\"noopener\" target=\"_blank\">Query Memory Grants<\/a>). SQL Server aura besoin d&#8217;allouer de la m\u00e9moire \u00e0 l&#8217;ex\u00e9cution d&#8217;une requ\u00eate pour g\u00e9rer les tris, op\u00e9rateurs de parall\u00e9lisme ou op\u00e9rateurs Hash (Hash Match, Hash Join). S&#8217;il se trompe sur son estimation de lignes, il va demander, disons 100Mb parce qu&#8217;il s&#8217;attend \u00e0 trier 1000 lignes, mais en r\u00e9alit\u00e9 il est possible qu&#8217;il doive trier 10 millions de lignes. <\/p>\n<p>Dans ce cas de figure il a demand\u00e9 trop peu de m\u00e9moire au moment de la compilation de son plan, et va devoir r\u00e9clamer une rallonge \u00e0 SQL Server au moment de l&#8217;ex\u00e9cution, qui ne pourra pas forc\u00e9ment lui \u00eatre octroy\u00e9e. Au final c&#8217;est tempdb qui sera mise \u00e0 contribution plut\u00f4t qu&#8217;un espace pris dans le buffer pool, avec les cons\u00e9quences sur la performance que l&#8217;on imagine &#8230;<\/p>\n<p>Dans le palmar\u00e8s on peut rechercher les requ\u00eates qui ont n\u00e9cessit\u00e9 le plus de query memory grants, sur la p\u00e9riode de l&#8217;incident (palmar\u00e8s par &#8216;<em>Allocation m\u00e9moire<\/em>&#8216;):<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm4-1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm4-1.png\" alt=\"\" width=\"945\" height=\"491\" class=\"aligncenter size-full wp-image-8975\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm4-1.png 945w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm4-1-300x156.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm4-1-768x399.png 768w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/a><br \/>\nFacile de rep\u00e9rer la requ\u00eate qui d\u00e9passe du lot sur 24 heures, juste \u00e0 l&#8217;heure de notre remplissage, avec un superbe 619Gb de query memory grants cumul\u00e9s certes et on le verra plus loin sur 556 ex\u00e9cutions, mais quand m\u00eame. Le buffer pool disposant de 117Gb de m\u00e9moire, il y a des chances pour qu&#8217;il ne puisse pas servir la totalit\u00e9 de ce qui est demand\u00e9, et donc le reste va aller dans tempdb sous la forme de stockage interne (<em>internal allocation<\/em>). <\/p>\n<p>Si on s&#8217;int\u00e9resse de plus pr\u00e8s aux d\u00e9tails de cette requ\u00eate (<em>cliquer sur l&#8217;image pour voir les d\u00e9tails<\/em>):<\/p>\n<p><a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5.png\" alt=\"\" width=\"1615\" height=\"693\" class=\"aligncenter size-full wp-image-8964\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5.png 1615w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5-300x129.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5-1024x439.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5-768x330.png 768w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm5-1536x659.png 1536w\" sizes=\"auto, (max-width: 1615px) 100vw, 1615px\" \/><\/a><br \/>\n&#8230; et que l&#8217;on ouvre son plan sous <a href=\"https:\/\/docs.sentryone.com\/help\/plan-explorer-installation\">SQL Sentry Plan Explorer<\/a> :<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm6.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm6.png\" alt=\"\" width=\"1123\" height=\"338\" class=\"aligncenter size-full wp-image-8965\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm6.png 1123w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm6-300x90.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm6-1024x308.png 1024w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm6-768x231.png 768w\" sizes=\"auto, (max-width: 1123px) 100vw, 1123px\" \/><\/a><br \/>\nOn voit en bas \u00e0 droite que la table lue est sans index cluster, avec 27% d&#8217;impact et un magnifique warning sur des I\/Os r\u00e9siduels qui pourraient r\u00e9sulter du fait que la table doit \u00eatre lue en int\u00e9gralit\u00e9 (soit 6.6 millions de lignes r\u00e9ellement et pas 1 million comme estim\u00e9):<br \/>\n<a href=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm7.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm7.png\" alt=\"\" width=\"1013\" height=\"775\" class=\"aligncenter size-full wp-image-8976\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm7.png 1013w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm7-300x230.png 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm7-768x588.png 768w\" sizes=\"auto, (max-width: 1013px) 100vw, 1013px\" \/><\/a><br \/>\nDans ce cas, il existe un index unique sur le pr\u00e9dicat mais non clusteris\u00e9. Le manque de couverture poussera l&#8217;optimiseur \u00e0 faire un fullscan de la table plut\u00f4t qu&#8217;un Index Seek accompagn\u00e9 de RID lookups ensuite. La cr\u00e9ation d&#8217;un index cluster unique devrait permettre de couvrir toutes les colonnes demand\u00e9es et d&#8217;\u00e9viter ensuite d&#8217;avoir \u00e0 faire des jointures Merge en cascade, \u00e0 chaque fois n\u00e9cessitant des tris, ce qui conduit \u00e0 l&#8217;\u00e9normissime consommation de Query Memory Grants <em>in fine<\/em>. <\/p>\n<p>Et tout \u00e7a sans avoir \u00e0 se connecter sur le serveur, d\u00e9pouiller les DMV, extraire le plan, sortir les cardinalit\u00e9s de la table, etc&#8230; <\/p>\n<p><strong>Conclusion : <\/strong>Gr\u00e2ce au palmar\u00e8s j&#8217;ai donn\u00e9 un pronostic au t\u00e9l\u00e9phone \u00e0 mon client en 10 minutes, l\u00e0 o\u00f9 il m&#8217;aurait fallu une bonne heure sans cet outil. <\/p>\n<p>Si vous \u00eates \u00e9diteur, cet outil peut \u00e9galement vous aider \u00e0 mieux appr\u00e9hender la performance des requ\u00eates que vous d\u00e9veloppez. Alors si vous voulez une d\u00e9mo du palmar\u00e8s, n&#8217;h\u00e9sitez pas et <a href=\"https:\/\/capdata.fr\/contact\">contactez-nous<\/a> !!<\/p>\n<p>A tr\u00e8s bient\u00f4t alors ?<br \/>\n~David <\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8956&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8956&#038;title=Identifier%20une%20requ%C3%AAte%20consommatrice%20via%20le%20palmar%C3%A8s%20SQL%20Server%20AllDB\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Identifier%20une%20requ%C3%AAte%20consommatrice%20via%20le%20palmar%C3%A8s%20SQL%20Server%20AllDB&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F8956\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Il y a quelques ann\u00e9es nous avons commenc\u00e9 \u00e0 r\u00e9orienter nos efforts de d\u00e9veloppement de nos agents de supervision AllDB vers l&#8217;identification des probl\u00e8mes de performance, parce que c&#8217;est finalement le fond de notre travail au quotidien, et que cela&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":8962,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[396,395,397],"class_list":["post-8956","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver","tag-optimisation","tag-palmares","tag-performance-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Il y a quelques ann\u00e9es nous avons commenc\u00e9 \u00e0 r\u00e9orienter nos efforts de d\u00e9veloppement de nos agents de supervision AllDB vers l&#8217;identification des probl\u00e8mes de performance, parce que c&#8217;est finalement le fond de notre travail au quotidien, et que cela&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-25T07:01:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1581\" \/>\n\t<meta property=\"og:image:height\" content=\"655\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Baffaleuf\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Baffaleuf\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\"},\"author\":{\"name\":\"David Baffaleuf\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf\"},\"headline\":\"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB\",\"datePublished\":\"2022-03-25T07:01:04+00:00\",\"dateModified\":\"2022-03-25T07:01:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\"},\"wordCount\":1341,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"optimisation\",\"palmares\",\"performance SQL\"],\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\",\"name\":\"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2022-03-25T07:01:04+00:00\",\"dateModified\":\"2022-03-25T07:01:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf\",\"name\":\"David Baffaleuf\",\"sameAs\":[\"http:\/\/www.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/dbaffaleuf\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/","og_locale":"fr_FR","og_type":"article","og_title":"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB - Capdata TECH BLOG","og_description":"Il y a quelques ann\u00e9es nous avons commenc\u00e9 \u00e0 r\u00e9orienter nos efforts de d\u00e9veloppement de nos agents de supervision AllDB vers l&#8217;identification des probl\u00e8mes de performance, parce que c&#8217;est finalement le fond de notre travail au quotidien, et que cela&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2022-03-25T07:01:04+00:00","og_image":[{"width":1581,"height":655,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2022\/03\/palm3.png","type":"image\/png"}],"author":"David Baffaleuf","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"David Baffaleuf","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/"},"author":{"name":"David Baffaleuf","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf"},"headline":"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB","datePublished":"2022-03-25T07:01:04+00:00","dateModified":"2022-03-25T07:01:04+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/"},"wordCount":1341,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["optimisation","palmares","performance SQL"],"articleSection":["SQL Server"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/","url":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/","name":"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2022-03-25T07:01:04+00:00","dateModified":"2022-03-25T07:01:04+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/identifier-une-requete-consommatrice-via-le-palmares-sql-server-alldb\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Identifier une requ\u00eate consommatrice via le palmar\u00e8s SQL Server AllDB"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/136297da9f61d6e4878abe0f48bc5fbf","name":"David Baffaleuf","sameAs":["http:\/\/www.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/dbaffaleuf\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/8956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=8956"}],"version-history":[{"count":6,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/8956\/revisions"}],"predecessor-version":[{"id":8981,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/8956\/revisions\/8981"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/8962"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=8956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=8956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=8956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}