{"id":1005,"date":"2019-05-14T08:57:06","date_gmt":"2019-05-14T15:57:06","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/erin\/?p=1005"},"modified":"2019-05-14T11:51:01","modified_gmt":"2019-05-14T18:51:01","slug":"queries-with-recompile-and-query-store","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/","title":{"rendered":"Queries with OPTION (RECOMPILE) and Query Store"},"content":{"rendered":"\r\n<p>&nbsp;<\/p>\r\n<p>Last week in our IEPTO2 class I was asked about queries with OPTION (RECOMPILE) and Query Store. Specifically: Do queries that have the OPTION (RECOMPILE) hint go into Query Store, <em>AND <\/em>do queries in a stored procedure <em>created<\/em> with the RECOMPILE option go into Query Store? I knew the answer to the first question, and was pretty sure I know the answer to the second one, but I wanted to test to verify. Let&#8217;s take a look.<\/p>\r\n\r\n\r\n\r\n<p style=\"padding-left: 40px;\">TL;DR In case you&#8217;re too busy to keep reading, <strong>the answer is yes to both<\/strong>.<\/p>\r\n<h1>Setup<\/h1>\r\n<p>We are using the WideWorldImporters database, which you can <a href=\"https:\/\/github.com\/Microsoft\/sql-server-samples\/tree\/master\/samples\/databases\/wide-world-importers\">download from Github<\/a>.\u00a0 I&#8217;m running the <a href=\"https:\/\/sqlserverbuilds.blogspot.com\/\">latest CU for SQL Server 2017<\/a>, but this is applicable for any version of Query Store (SQL Server 2016 and higher) and Azure SQL Database.\u00a0 The code below will enable Query Store, set QUERY_CAPTURE_MODE to ALL (to understand the different various and what&#8217;s recommended for production, check out my <a href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/query-store-settings\/\">Query Store Settings post<\/a>), and then clear out anything that&#8217;s in Query Store.\u00a0 I don&#8217;t typically recommend that you clear out Query Store, but we&#8217;re restoring a demo database, and this is a demo, so I want to make sure we start fresh.\u00a0 Lastly, we&#8217;ll create a stored procedure to use for testing that is created with RECOMPILE and then completely free procedure cache.\u00a0 Note that adding the RECOMPILE option to a stored procedure is <strong>not<\/strong> something I recommend &#8211; it means that the entire stored procedure will recompile <strong>every time<\/strong> it is executed.\u00a0 I also don&#8217;t recommend freeing procedure cache in production &#8211; this is just for demo purposes.<\/p>\r\n<pre><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n\r\nUSE &#x5B;master];\r\nGO\r\nALTER DATABASE &#x5B;WideWorldImporters] SET QUERY_STORE = ON;\r\nGO\r\nALTER DATABASE &#x5B;WideWorldImporters] SET QUERY_STORE (OPERATION_MODE = READ_WRITE, QUERY_CAPTURE_MODE = ALL);\r\nGO\r\nALTER DATABASE &#x5B;WideWorldImporters] SET QUERY_STORE CLEAR;\r\nGO\r\n\r\nDROP PROCEDURE IF EXISTS Sales.usp_GetOrderInfo \r\nGO\r\n\r\nCREATE PROCEDURE Sales.usp_GetOrderInfo\r\n(@OrderID INT)\r\nWITH RECOMPILE\r\nAS\r\nBEGIN\r\nSELECT \r\no.OrderID,\r\no.CustomerID,\r\no.OrderDate,\r\nol.Quantity,\r\nol.UnitPrice\r\nFROM Sales.Orders o\r\nJOIN Sales.OrderLines ol\r\nON o.OrderID = ol.OrderID\r\nWHERE o.OrderID = @OrderID;\r\nEND\r\nGO\r\n\r\nDBCC FREEPROCCACHE;\r\nGO\r\n<\/pre><\/pre>\r\n<h1>Testing<\/h1>\r\n<p>First, execute an ad hoc query, one that is not part of a stored procedure, that has the OPTION (RECOMIPLE) hint:<\/p>\r\n<pre><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n\r\nSELECT\r\ni.InvoiceID,\r\ni.CustomerID,\r\ni.InvoiceDate,\r\nil.Quantity,\r\nil.UnitPrice\r\nFROM Sales.Invoices i\r\nJOIN Sales.InvoiceLines il\r\nON i.InvoiceID = il.InvoiceID\r\nWHERE i.InvoiceID = 54983\r\nOPTION (RECOMPILE);\r\nGO 10\r\n<\/pre><\/pre>\r\n<p>If we check the plan cache, you&#8217;ll notice that there is no evidence that this query has executed:<\/p>\r\n<pre><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n\r\nSELECT \r\nqs.execution_count,\r\nst.text, \r\nqs.creation_time\r\nFROM sys.dm_exec_query_stats AS &#x5B;qs] \r\nCROSS APPLY sys.dm_exec_sql_text (&#x5B;sql_handle]) &#x5B;st]\r\nCROSS APPLY sys.dm_exec_query_plan (&#x5B;plan_handle]) &#x5B;p]\r\nWHERE &#x5B;st].&#x5B;text]&#x5B;\/text] LIKE '%Sales.Invoices%';\r\nGO\r\n<\/pre><\/pre>\r\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-1009\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs1.jpg\" alt=\"Plan cache after ad hoc query with OPTION (RECOMPILE)\" width=\"750\" height=\"536\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs1.jpg 826w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs1-300x214.jpg 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs1-768x549.jpg 768w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/p>\r\n<p>&nbsp;<\/p>\r\n<p>But if we look in Query Store we <em>do<\/em> see the query:<\/p>\r\n<pre><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n\r\nSELECT\r\n&#x5B;qsq].&#x5B;query_id], \r\n&#x5B;qsp].&#x5B;plan_id],\r\n&#x5B;qsq].&#x5B;object_id],\r\n&#x5B;rs].&#x5B;count_executions],\r\n&#x5B;rs].&#x5B;last_execution_time],\r\n&#x5B;rs].&#x5B;avg_duration],\r\n&#x5B;rs].&#x5B;avg_logical_io_reads],\r\n&#x5B;qst].&#x5B;query_sql_text],\r\nTRY_CONVERT(XML, &#x5B;qsp].&#x5B;query_plan]) AS &#x5B;QueryPlan_XML],\r\n&#x5B;qsp].&#x5B;query_plan] \r\nFROM &#x5B;sys].&#x5B;query_store_query] &#x5B;qsq] \r\nJOIN &#x5B;sys].&#x5B;query_store_query_text] &#x5B;qst]\r\nON &#x5B;qsq].&#x5B;query_text_id] = &#x5B;qst].&#x5B;query_text_id]\r\nJOIN &#x5B;sys].&#x5B;query_store_plan] &#x5B;qsp] \r\nON &#x5B;qsq].&#x5B;query_id] = &#x5B;qsp].&#x5B;query_id]\r\nJOIN &#x5B;sys].&#x5B;query_store_runtime_stats] &#x5B;rs] \r\nON &#x5B;qsp].&#x5B;plan_id] = &#x5B;rs].&#x5B;plan_id]\r\nWHERE &#x5B;qst].&#x5B;query_sql_text] LIKE '%Sales.Invoices%';\r\nGO\r\n<\/pre><\/pre>\r\n<p><img decoding=\"async\" class=\"size-large wp-image-1011\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs3-1024x62.jpg\" alt=\"Query Store capturing ad hoc query with OPTION (RECOMPILE)\" width=\"1024\" height=\"62\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs3-1024x62.jpg 1024w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs3-300x18.jpg 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs3-768x46.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\r\n<p>&nbsp;<\/p>\r\n<p>If we expand the query_sql_text column (middle text removed for space reasons) you can see that the text <em>includes<\/em> OPTION (RECOMPILE).\u00a0 This is pretty cool.<\/p>\r\n<p><img decoding=\"async\" class=\"alignnone wp-image-1012\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs4-1024x57.jpg\" alt=\"Query with OPTION (RECOMIPLE) stored in Query Store\" width=\"750\" height=\"42\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs4-1024x57.jpg 1024w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs4-300x17.jpg 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs4-768x43.jpg 768w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs4.jpg 1826w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/p>\r\n<p>&nbsp;<\/p>\r\n<p>Now let&#8217;s execute the stored procedure we created with RECOMPILE and then check the plan cache:<\/p>\r\n<pre><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n\r\nEXEC Sales.usp_GetOrderInfo 57302;\r\nGO 10\r\n\r\nSELECT \r\nqs.execution_count,\r\nst.text, \r\nqs.creation_time\r\nFROM sys.dm_exec_query_stats AS &#x5B;qs] \r\nCROSS APPLY sys.dm_exec_sql_text (&#x5B;sql_handle]) &#x5B;st]\r\nCROSS APPLY sys.dm_exec_query_plan (&#x5B;plan_handle]) &#x5B;p]\r\nWHERE &#x5B;st].&#x5B;text]&#x5B;\/text] LIKE '%Sales.Orders%';\r\nGO\r\n<\/pre><\/pre>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1013\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs5.jpg\" alt=\"Plan cache after stored procedure created with OPTION (RECOMPILE)\" width=\"750\" height=\"576\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs5.jpg 777w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs5-300x231.jpg 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs5-768x590.jpg 768w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/p>\r\n<p>&nbsp;<\/p>\r\n<p>And when we check Query Store we <em>do<\/em> see the query:<\/p>\r\n<pre><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n\r\nSELECT\r\n&#x5B;qsq].&#x5B;query_id], \r\n&#x5B;qsp].&#x5B;plan_id],\r\n&#x5B;qsq].&#x5B;object_id],\r\nOBJECT_NAME(&#x5B;qsq].&#x5B;object_id]) AS ObjectName,\r\n&#x5B;rs].&#x5B;count_executions],\r\n&#x5B;rs].&#x5B;last_execution_time],\r\n&#x5B;rs].&#x5B;avg_duration],\r\n&#x5B;rs].&#x5B;avg_logical_io_reads],\r\n&#x5B;qst].&#x5B;query_sql_text],\r\nTRY_CONVERT(XML, &#x5B;qsp].&#x5B;query_plan]) AS &#x5B;QueryPlan_XML],\r\n&#x5B;qsp].&#x5B;query_plan] \/* nvarchar(max) *\/\r\nFROM &#x5B;sys].&#x5B;query_store_query] &#x5B;qsq] \r\nJOIN &#x5B;sys].&#x5B;query_store_query_text] &#x5B;qst]\r\nON &#x5B;qsq].&#x5B;query_text_id] = &#x5B;qst].&#x5B;query_text_id]\r\nJOIN &#x5B;sys].&#x5B;query_store_plan] &#x5B;qsp] \r\nON &#x5B;qsq].&#x5B;query_id] = &#x5B;qsp].&#x5B;query_id]\r\nJOIN &#x5B;sys].&#x5B;query_store_runtime_stats] &#x5B;rs] \r\nON &#x5B;qsp].&#x5B;plan_id] = &#x5B;rs].&#x5B;plan_id]\r\nWHERE OBJECT_NAME(&#x5B;qsq].&#x5B;object_id]) = 'usp_GetOrderInfo';\r\nGO\r\n<\/pre><\/pre>\r\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-large wp-image-1014\" src=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs6-1024x36.jpg\" alt=\"Query from stored procedure created with OPTION (RECOMIPLE) stored in Query Store\" width=\"1024\" height=\"36\" srcset=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs6-1024x36.jpg 1024w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs6-300x10.jpg 300w, https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs6-768x27.jpg 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\r\n<p>&nbsp;<\/p>\r\n<h1>Summary<\/h1>\r\n<p>Regardless of where OPTION (RECOMPILE) is used &#8211; at the statement level for an ad hoc query or a statement within a stored procedure &#8211; and when the RECOMPILE option is used at the procedure level during creation or execution &#8211; the query text, the plan, and the execution statistics still get captured within Query Store.<\/p>\r\n\r\n\r\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Last week in our IEPTO2 class I was asked about queries with OPTION (RECOMPILE) and Query Store. Specifically: Do queries that have the OPTION (RECOMPILE) hint go into Query Store, AND do queries in a stored procedure created with the RECOMPILE option go into Query Store? I knew the answer to the first question, [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Queries with OPTION (RECOMPILE) and Query Store - Erin Stellato<\/title>\n<meta name=\"description\" content=\"Queries executed with OPTION (RECOMIPLE) do not persist in the SQL Server plan cache, but do they get saved in Query Store? Read on to find out!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Queries with OPTION (RECOMPILE) and Query Store - Erin Stellato\" \/>\n<meta property=\"og:description\" content=\"Queries executed with OPTION (RECOMIPLE) do not persist in the SQL Server plan cache, but do they get saved in Query Store? Read on to find out!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/\" \/>\n<meta property=\"og:site_name\" content=\"Erin Stellato\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-14T15:57:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-14T18:51:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs1.jpg\" \/>\n<meta name=\"author\" content=\"Erin Stellato\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Erin Stellato\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/\",\"name\":\"Queries with OPTION (RECOMPILE) and Query Store - Erin Stellato\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\"},\"datePublished\":\"2019-05-14T15:57:06+00:00\",\"dateModified\":\"2019-05-14T18:51:01+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\"},\"description\":\"Queries executed with OPTION (RECOMIPLE) do not persist in the SQL Server plan cache, but do they get saved in Query Store? Read on to find out!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Queries with OPTION (RECOMPILE) and Query Store\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/\",\"name\":\"Erin Stellato\",\"description\":\"The SQL Sequel\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158\",\"name\":\"Erin Stellato\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g\",\"caption\":\"Erin Stellato\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/erin\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Queries with OPTION (RECOMPILE) and Query Store - Erin Stellato","description":"Queries executed with OPTION (RECOMIPLE) do not persist in the SQL Server plan cache, but do they get saved in Query Store? Read on to find out!","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:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/","og_locale":"en_US","og_type":"article","og_title":"Queries with OPTION (RECOMPILE) and Query Store - Erin Stellato","og_description":"Queries executed with OPTION (RECOMIPLE) do not persist in the SQL Server plan cache, but do they get saved in Query Store? Read on to find out!","og_url":"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/","og_site_name":"Erin Stellato","article_published_time":"2019-05-14T15:57:06+00:00","article_modified_time":"2019-05-14T18:51:01+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-content\/uploads\/2019\/05\/qs1.jpg"}],"author":"Erin Stellato","twitter_misc":{"Written by":"Erin Stellato","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/","name":"Queries with OPTION (RECOMPILE) and Query Store - Erin Stellato","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website"},"datePublished":"2019-05-14T15:57:06+00:00","dateModified":"2019-05-14T18:51:01+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158"},"description":"Queries executed with OPTION (RECOMIPLE) do not persist in the SQL Server plan cache, but do they get saved in Query Store? Read on to find out!","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/queries-with-recompile-and-query-store\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/erin\/"},{"@type":"ListItem","position":2,"name":"Queries with OPTION (RECOMPILE) and Query Store"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/erin\/","name":"Erin Stellato","description":"The SQL Sequel","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/erin\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/76170223ffffa1df03fd9be5b66cb158","name":"Erin Stellato","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/erin\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c8b485bd54ea26b57e99f79b525f409?s=96&d=mm&r=g","caption":"Erin Stellato"},"sameAs":["http:\/\/3.209.169.194\/blogs\/erin"],"url":"https:\/\/www.sqlskills.com\/blogs\/erin\/author\/erin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/1005"}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/comments?post=1005"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/posts\/1005\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/media?parent=1005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/categories?post=1005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/erin\/wp-json\/wp\/v2\/tags?post=1005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}