<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Query Store on Rudi Bruchez</title><link>https://www.pachadata.com/tags/query-store/</link><description>Recent content in Query Store on Rudi Bruchez</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Wed, 21 Oct 2026 19:34:11 +0200</lastBuildDate><atom:link href="https://www.pachadata.com/tags/query-store/index.xml" rel="self" type="application/rss+xml"/><item><title>Les modes de capture du Query Store</title><link>https://www.pachadata.com/docs/articles/sqlserver/performances/query-store-modes-de-capture/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.pachadata.com/docs/articles/sqlserver/performances/query-store-modes-de-capture/</guid><description>&lt;p&gt;&lt;em&gt;Article coécrit avec Claude, qui a mené les tests en laboratoire et une partie des recherches.&lt;/em&gt;&lt;/p&gt;&#10;&lt;div class="alert alert-success" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;TL;DR&lt;/div&gt;&#10;&lt;p&gt;En mode &lt;code&gt;AUTO&lt;/code&gt;, la valeur par défaut depuis SQL Server 2019, le Query Store n&amp;rsquo;enregistre une requête qu&amp;rsquo;au moment où elle atteint 30 exécutions, une seconde de CPU de compilation ou 100 ms de CPU d&amp;rsquo;exécution. Les exécutions qui précèdent ce moment ne sont pas comptées dans le Query Store. Les requêtes des procédures stockées sont capturées dès la première exécution, mais depuis SQL Server 2022 les curseurs sont soumis aux seuils, contrairement à ce que dit la documentation. &lt;code&gt;ALL&lt;/code&gt; enregistre tout, y compris des milliers de requêtes ad hoc jamais relancées.&lt;/p&gt;&#10;&lt;/div&gt;</description></item><item><title>Ce que le Query Store enregistre</title><link>https://www.pachadata.com/docs/articles/sqlserver/performances/query-store-collecte/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.pachadata.com/docs/articles/sqlserver/performances/query-store-collecte/</guid><description>&lt;p&gt;&lt;em&gt;Article coécrit avec Claude, qui a mené les tests en laboratoire et une partie des recherches.&lt;/em&gt;&lt;/p&gt;&#10;&lt;div class="alert alert-success" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;TL;DR&lt;/div&gt;&#10;&lt;p&gt;Le Query Store garde le texte, les plans et les statistiques d&amp;rsquo;exécution des requêtes qu&amp;rsquo;il capture, mais pas qui les a lancées, ni les valeurs des paramètres au-delà de la compilation. Même en mode &lt;code&gt;ALL&lt;/code&gt;, il ne voit ni &lt;code&gt;TRUNCATE TABLE&lt;/code&gt;, ni &lt;code&gt;CREATE TABLE&lt;/code&gt;, ni &lt;code&gt;ALTER TABLE&lt;/code&gt;, ni &lt;code&gt;DBCC CHECKTABLE&lt;/code&gt;, ni les requêtes ad hoc lancées depuis &lt;code&gt;master&lt;/code&gt; ou &lt;code&gt;tempdb&lt;/code&gt;. Une requête en erreur ou annulée par le client est enregistrée, une session tuée par &lt;code&gt;KILL&lt;/code&gt; ne laisse que son texte et son plan, et un arrêt brutal de l&amp;rsquo;instance efface les statistiques qui n&amp;rsquo;étaient pas encore écrites sur disque.&lt;/p&gt;&#10;&lt;/div&gt;</description></item><item><title>Analyser le Query Store avec un agent IA</title><link>https://www.pachadata.com/docs/articles/sqlserver/performances/query-store-agent/</link><pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.pachadata.com/docs/articles/sqlserver/performances/query-store-agent/</guid><description>&lt;p&gt;&lt;em&gt;Article coécrit avec Claude, qui a mené les tests en laboratoire et une partie des recherches.&lt;/em&gt;&lt;/p&gt;&#10;&lt;div class="alert alert-success" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;TL;DR&lt;/div&gt;&#10;&lt;p&gt;Fouiller le Query Store à la main, requête par requête, prend des heures. Un agent en ligne de commande (Claude Code, Codex) le fait seul s&amp;rsquo;il dispose de &lt;code&gt;sqlcmd&lt;/code&gt; et d&amp;rsquo;un login dédié qui n&amp;rsquo;a que &lt;code&gt;VIEW DATABASE STATE&lt;/code&gt; dans chaque base : il lit les textes, les plans et les statistiques d&amp;rsquo;exécution, et reçoit une erreur 229 sur toute table. Pour plus de prudence, &lt;code&gt;DBCC CLONEDATABASE&lt;/code&gt; produit une copie sans données qui contient le Query Store, à restaurer sur une autre instance.&lt;/p&gt;&#10;&lt;p&gt;Le Query Store ne garde pas tout. En mode de capture &lt;code&gt;AUTO&lt;/code&gt;, une requête ad hoc n&amp;rsquo;est enregistrée qu&amp;rsquo;à partir de 30 exécutions ou d&amp;rsquo;un certain coût : dans mes mesures, une lecture de toute la table &lt;code&gt;Contact.Contact&lt;/code&gt; (120 140 lignes) découpée en 25 requêtes n&amp;rsquo;a laissé aucune trace. Une requête lancée depuis &lt;code&gt;master&lt;/code&gt; ou &lt;code&gt;tempdb&lt;/code&gt; n&amp;rsquo;est enregistrée nulle part, et un &lt;code&gt;TRUNCATE TABLE&lt;/code&gt; jamais. L&amp;rsquo;agent ne trouve que ce que le Query Store a gardé.&lt;/p&gt;&#10;&lt;/div&gt;</description></item></channel></rss>