{"id":518,"date":"2011-11-11T01:20:00","date_gmt":"2011-11-11T01:20:00","guid":{"rendered":"\/blogs\/joe\/post\/What-sysdm_db_index_usage_stats-may-not-tell-you.aspx"},"modified":"2011-11-11T01:20:00","modified_gmt":"2011-11-11T01:20:00","slug":"exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/","title":{"rendered":"Exceptions &#8211; what sys.dm_db_index_usage_stats doesn&#8217;t tell you"},"content":{"rendered":"<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">I was thinking back to a conversation I had some time ago regarding cases when sys.dm_db_index_usage_stats does <em>not<\/em> get updated after an index is used for just the statistics associated with the indexed columns.<\/font><span><font style=\"font-size: 11pt\">&nbsp; What makes this profession so interesting is that almost every tool we use has a &quot;yes, but&#8230;&quot; associated with it.&nbsp; What a DMV gives with one hand it might hide with another.<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">While I recalled the conversation, I needed to double check who I had actually discussed it with.<span>&nbsp; <\/span>Admittedly, it&rsquo;s a short list.<span>&nbsp; <\/span>After checking with him over email, I realized that conversation had been with MVP, Microsoft RD, MCM <\/font><\/font><font style=\"font-size: 11pt\"><a href=\"http:\/\/sqlblog.com\/blogs\/greg_low\/default.aspx\" target=\"_blank\" class=\"broken_link\"><font face=\"Calibri\" color=\"#0000ff\"><u>Greg Low<\/u><\/font><\/a><font face=\"Calibri\">. <span>&nbsp;<\/span>He also mentioned that <\/font><a href=\"http:\/\/sqlblog.com\/blogs\/rob_farley\/\" target=\"_blank\" class=\"broken_link\"><font face=\"Calibri\" color=\"#0000ff\"><u>Rob Farley<\/u><\/font><\/a><\/font><font face=\"Calibri\"><font style=\"font-size: 11pt\"> once demonstrated the effect of creating a unique non-clustered index on a column which impacts the query plan but doesn&rsquo;t actually register that use in sys.dm_db_index_usage_stats.<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">While the conversation stuck with me, I had never taken time to test it out.<span>&nbsp; <\/span>In this post, I&rsquo;ll be testing out a different scenario, but essentially a similar situation where index column stats are used for a query (to provide more accurate estimates) &ndash; but its use results in no update to sys.dm_db_index_usage_stats.<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><em>Before getting to the demo, I do want to say that I still think sys.dm_db_index_usage_stats is incredibly useful for evaluating usage patterns and helping to identify indexes that aren&rsquo;t pulling their weight (high cost &ndash; low benefit).<\/em><span>&nbsp; <\/span>I also see the following scenario as an edge case &ndash; but something to most certainly be mindful of as one reason why you could all-of-the-sudden see cardinality estimate issues after dropping an index that wasn&rsquo;t showing as being used at all.<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">In this demo, I&rsquo;m using SQL Server 2008 R2 (10.50.1617) and the AdventureWorksDW database.<span>&nbsp;&nbsp; <\/span>I&rsquo;ll start off by disabling auto-creation of statistics (you&rsquo;ll see why shortly).<span>&nbsp; <\/span>While I see auto-creation enabled more often than not, I have seen cases where it has mindfully been disabled and cases where it was disabled for no good reason at all &ndash; a topic for another day:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Disable creation of statistics<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">USE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> [master]<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">ALTER<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#0000ff\">DATABASE<\/font><\/span> [AdventureWorksDW] <span><font color=\"#0000ff\">SET<\/font><\/span> <span><font color=\"#0000ff\">AUTO_CREATE_STATISTICS<\/font><\/span> <span><font color=\"#0000ff\">OFF<\/font><\/span> <span><font color=\"#0000ff\">WITH<\/font><\/span> NO_WAIT<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span style=\"line-height: 14pt\"><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Next I&rsquo;ll execute the following query against the dbo.FactInternetSales table &ndash; and I&rsquo;ve enabled the &ldquo;Include Actual Execution Plan&rdquo; in SSMS so I can see the actual plan:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">USE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> [AdventureWorksDW]<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Estimated rows (no stats on TaxAmt) = 3,853<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Actual rows (562)<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> RevisionNumber<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> dbo<span><font color=\"#808080\">.<\/font><\/span>FactInternetSales<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">WHERE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> TaxAmt <span><font color=\"#808080\">=<\/font><\/span> 5.08<\/font><span><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">We can check the estimated versus actual rows in SSMS, but I&rsquo;ll actually show the results in <a href=\"http:\/\/www.sqlsentry.com\/plan-explorer\/sql-server-query-view.asp\" target=\"_blank\" class=\"broken_link\">SQL Sentry Plan Explorer<\/a> because I like the tabular format (and I don&rsquo;t have to &ldquo;hover&rdquo; to see it).<span>&nbsp; <\/span>The following screen shot is from the Plan Tree tab:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/7A3D8234\/clip_image001.png\"><img fetchpriority=\"high\" decoding=\"async\" style=\"background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/5297060A\/clip_image001_thumb.png\" border=\"0\" alt=\"clip_image001\" title=\"clip_image001\" width=\"686\" height=\"93\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">As you can see &ndash; the estimated rows were 3,853 versus 562 rows.<span>&nbsp; <\/span>Now recall that automatic creation of statistics are disabled, so I&rsquo;m going to manually create the following index:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Calibri\"><font style=\"font-size: 11pt\">&nbsp;<\/font><\/font><\/span><span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Create an index on TaxAmt (which means we also get stats)<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">CREATE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#0000ff\">INDEX<\/font><\/span> IX_FactInternetSales_TaxAmt <\/font><span><font color=\"#0000ff\" style=\"font-size: 12pt\">ON<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span style=\"line-height: 14pt\"><font face=\"Lucida Console\"><font style=\"font-size: 12pt\">dbo<span><font color=\"#808080\">.<\/font><\/span>FactInternetSales<span><font color=\"#0000ff\"> <\/font><\/span><span><font color=\"#808080\">(<\/font><\/span>TaxAmt<\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">)<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">If I re-execute the previous query against dbo.FactInternetSales, I see the following:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/4B0B969D\/clip_image002.png\"><img decoding=\"async\" style=\"background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/716D79E8\/clip_image002_thumb.png\" border=\"0\" alt=\"clip_image002\" title=\"clip_image002\" width=\"682\" height=\"86\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Now our estimates match the actual results.<span>&nbsp; <\/span>We have a better estimate, although notice that a table scan was still chosen (although imagine the disparity had this table had significantly more rows &#8211; and associated impact).<span>&nbsp;&nbsp; <\/span>But in essence, we did use the statistics associated with that index, so what about index usage stats?<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">If I execute the following query, I get no results at all:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Was the index used? Not according to sys.dm_db_index_usage_stats<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> u<span><font color=\"#808080\">.<\/font><\/span>user_seeks<span><font color=\"#808080\">,<\/font><\/span> u<span><font color=\"#808080\">.<\/font><\/span>user_lookups<span><font color=\"#808080\">,<\/font><\/span> u<span><font color=\"#808080\">.<\/font><\/span>user_scans<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008000\">dm_db_index_usage_stats<\/font><\/span> u<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#808080\"><font style=\"font-size: 12pt\">INNER<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#808080\">JOIN<\/font><\/span> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008000\">indexes<\/font><\/span> i <\/font><span><font color=\"#0000ff\" style=\"font-size: 12pt\">ON<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">u<span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> i<span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span> <\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">AND<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">u<span><font color=\"#808080\">.<\/font><\/span>index_id <span><font color=\"#808080\">=<\/font><\/span> i<span><font color=\"#808080\">.<\/font><\/span>index_id<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">WHERE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> u<span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span><span><font color=\"#808080\">=<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;dbo.FactInternetSales&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">AND<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span style=\"line-height: 14pt\"><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">i<span><font color=\"#808080\">.<\/font><\/span>name <span><font color=\"#808080\">=<\/font><\/span> <\/font><span><font color=\"#ff0000\" style=\"font-size: 12pt\">&#39;IX_FactInternetSales_TaxAmt&#39;<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">So let&rsquo;s drop the index we just created and see what happens:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">USE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> [AdventureWorksDW]<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">DROP<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#0000ff\">INDEX<\/font><\/span> [IX_FactInternetSales_TaxAmt] <span><font color=\"#0000ff\">ON<\/font><\/span> [dbo]<span><font color=\"#808080\">.<\/font><\/span>[FactInternetSales] <span><font color=\"#0000ff\">WITH <\/font><\/span><span><font color=\"#808080\">(<\/font><\/span> <span><font color=\"#0000ff\">ONLINE<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <span><font color=\"#0000ff\">OFF<\/font><\/span> <\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">)<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Estimated rows with index = 3,853<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#008000\" style=\"font-size: 12pt\">&#8212; Actual rows (562)<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> RevisionNumber<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> dbo<span><font color=\"#808080\">.<\/font><\/span>FactInternetSales<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span style=\"line-height: 14pt\"><font color=\"#0000ff\"><font style=\"font-size: 12pt\">WHERE<\/font><\/font><\/span><span style=\"line-height: 14pt\"><font style=\"font-size: 12pt\"> TaxAmt <span><font color=\"#808080\">=<\/font><\/span> 5.08<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">As you may expect, we&rsquo;re back to the estimation issue:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/69E20A7B\/clip_image0011.png\"><img decoding=\"async\" style=\"background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/62569B0E\/clip_image0011_thumb.png\" border=\"0\" alt=\"clip_image001[1]\" title=\"clip_image001[1]\" width=\"686\" height=\"93\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">As a final test, let&rsquo;s enable auto-creation of statistics and re-execute the query (again, with no supporting index statistics):<\/font><span style=\"line-height: 14pt\"><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">USE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> [master]<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">ALTER<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#0000ff\">DATABASE<\/font><\/span> [AdventureWorksDW] <span><font color=\"#0000ff\">SET<\/font><\/span> <span><font color=\"#0000ff\">AUTO_CREATE_STATISTICS<\/font><\/span> <span><font color=\"#0000ff\">ON<\/font><\/span> <span><font color=\"#0000ff\">WITH<\/font><\/span> NO_WAIT<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">USE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> [AdventureWorksDW]<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\">GO<\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n&nbsp;\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><font color=\"#0000ff\" style=\"font-size: 12pt\"><\/font><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> RevisionNumber<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> dbo<span><font color=\"#808080\">.<\/font><\/span>FactInternetSales<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">WHERE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> TaxAmt <span><font color=\"#808080\">=<\/font><\/span> 5.08<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\"><\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">The plan shows that actual versus estimated matches again (without the index) because auto-creation of statistics occurred in the background:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/08B87E5A\/clip_image0021.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/2F1A61A5\/clip_image0021_thumb.png\" border=\"0\" alt=\"clip_image002[1]\" title=\"clip_image002[1]\" width=\"682\" height=\"86\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">And I can validate if auto-statistics were created as follows:<\/font><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">SELECT<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> s<span><font color=\"#808080\">.<\/font><\/span>name<span><font color=\"#808080\">,<\/font><\/span> <span><font color=\"#ff00ff\">STATS_DATE<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span>s<span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span><span><font color=\"#808080\">,<\/font><\/span> s<span><font color=\"#808080\">.<\/font><\/span>stats_id<span><font color=\"#808080\">)<\/font><\/span> auto_stats_date<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">FROM<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008000\">stats<\/font><\/span> s<\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#808080\"><font style=\"font-size: 12pt\">INNER<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> <span><font color=\"#808080\">JOIN<\/font><\/span> <span><font color=\"#008000\">sys<\/font><\/span><span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#008000\">stats_columns<\/font><\/span> c <\/font><span><font color=\"#0000ff\" style=\"font-size: 12pt\">ON<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">s<span><font color=\"#808080\">.<\/font><\/span>stats_id <span><font color=\"#808080\">=<\/font><\/span> c<span><font color=\"#808080\">.<\/font><\/span>stats_id <\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">AND<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">s<span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> c<span><font color=\"#808080\">.<\/font><\/span><\/font><span><font color=\"#ff00ff\" style=\"font-size: 12pt\">object_id<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<font face=\"Lucida Console\"><span><font color=\"#0000ff\"><font style=\"font-size: 12pt\">WHERE<\/font><\/font><\/span><span><font style=\"font-size: 12pt\"> s<span><font color=\"#808080\">.<\/font><\/span><span><font color=\"#ff00ff\">object_id<\/font><\/span> <span><font color=\"#808080\">=<\/font><\/span> <span><font color=\"#ff00ff\">object_id<\/font><\/span><span><font color=\"#808080\">(<\/font><\/span><span><font color=\"#ff0000\">&#39;dbo.FactInternetSales&#39;<\/font><\/span><span><font color=\"#808080\">)<\/font><\/span> <\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">AND<\/font><\/span><\/span><\/font>\n<\/p>\n<p style=\"line-height: normal; margin: 0in 0in 0pt\" class=\"MsoNormal\">\n<span><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">s<span><font color=\"#808080\">.<\/font><\/span>auto_created <span><font color=\"#808080\">=<\/font><\/span> 1 <\/font><span><font color=\"#808080\" style=\"font-size: 12pt\">AND<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span style=\"line-height: 14pt\"><font face=\"Lucida Console\"><span><font style=\"font-size: 12pt\">&nbsp;&nbsp;&nbsp;&nbsp; <\/font><\/span><font style=\"font-size: 12pt\">c<span><font color=\"#808080\">.<\/font><\/span>column_id <span><font color=\"#808080\">=<\/font><\/span> 20 <\/font><span><font color=\"#008000\" style=\"font-size: 12pt\">&ndash; TaxAmt<\/font><\/span><\/font><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">And indeed &ndash; this was the case:<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<span><a href=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/278EF238\/clip_image003.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px\" src=\"\/blogs\/joe\/wp-content\/uploads\/Windows-Live-Writer\/Wha.dm_db_index_usage_stats-may-not-tell\/401E8F88\/clip_image003_thumb.png\" border=\"0\" alt=\"clip_image003\" title=\"clip_image003\" width=\"464\" height=\"79\" \/><\/a><\/span>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Will this stop me from using sys.dm_db_index_usage_stats to identify high cost\/low benefit indexes?<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Absolutely not.<span>&nbsp; <\/span>The potential benefit of identifying and eliminating wasteful indexing is too great and this is a fantastic (but not perfect) method to use in assessing an indexes&rsquo; value.<\/font><span><font style=\"font-size: 11pt\">&nbsp; <\/font><\/span><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><em><font style=\"font-size: 11pt\">However &ndash;<\/font><\/em><font style=\"font-size: 11pt\"> I will also be mindful of such scenarios.<span>&nbsp; <\/span>If someone tells me that plans have turned for the worse after an index cleanup operation, I&rsquo;ll validate this very scenario. <span>&nbsp;<\/span>And even if I found this as the root cause, my bias would revolve around creating the needed statistics, rather than creating an index that is not used for actual data access.<\/font><\/font>\n<\/p>\n<p style=\"line-height: 13pt; margin: 0in 0in 10pt\" class=\"MsoNormal\">\n<font face=\"Calibri\"><font style=\"font-size: 11pt\">Wish list time&hellip; One &ldquo;nice to have&rdquo; for a future version of sys.dm_db_index_usage_stats would be to add a&nbsp;stats_lookup bigint column and a last_stats_lookup datetime column.<span>&nbsp; <\/span>I would see it as a great way to ensure we address indexes that are used exclusively for the index column statistics associated with it.<\/font><\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I was thinking back to a conversation I had some time ago regarding cases when sys.dm_db_index_usage_stats does not get updated after an index is used for just the statistics associated with the indexed columns.&nbsp; What makes this profession so interesting is that almost every tool we use has a &quot;yes, but&#8230;&quot; associated with it.&nbsp; What [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,28],"tags":[],"class_list":["post-518","post","type-post","status-publish","format-standard","hentry","category-indexing","category-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Exceptions - what sys.dm_db_index_usage_stats doesn&#039;t tell you - Joe Sack<\/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:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Exceptions - what sys.dm_db_index_usage_stats doesn&#039;t tell you - Joe Sack\" \/>\n<meta property=\"og:description\" content=\"I was thinking back to a conversation I had some time ago regarding cases when sys.dm_db_index_usage_stats does not get updated after an index is used for just the statistics associated with the indexed columns.&nbsp; What makes this profession so interesting is that almost every tool we use has a &quot;yes, but&#8230;&quot; associated with it.&nbsp; What [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/\" \/>\n<meta property=\"og:site_name\" content=\"Joe Sack\" \/>\n<meta property=\"article:published_time\" content=\"2011-11-11T01:20:00+00:00\" \/>\n<meta name=\"author\" content=\"Joseph Sack\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joseph Sack\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/\",\"name\":\"Exceptions - what sys.dm_db_index_usage_stats doesn't tell you - Joe Sack\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\"},\"datePublished\":\"2011-11-11T01:20:00+00:00\",\"dateModified\":\"2011-11-11T01:20:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Indexing\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/category\/indexing\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Exceptions &#8211; what sys.dm_db_index_usage_stats doesn&#8217;t tell you\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/\",\"name\":\"Joe Sack\",\"description\":\"SQL Server Performance Tuning, High Availability and Disaster Recovery Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648\",\"name\":\"Joseph Sack\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g\",\"caption\":\"Joseph Sack\"},\"description\":\"Joe Sack is a Principal Consultant with SQLskills. He has worked as a SQL Server professional since 1997 and has supported and developed for SQL Server environments in financial services, IT consulting, manufacturing, retail and the real estate industry. Prior to joining SQLskills he worked at Microsoft as a Premier Field Engineer supporting very large enterprise customer environments. He was responsible for providing deep SQL Server advisory services, training, troubleshooting and ongoing solutions guidance. His areas of expertise include performance tuning, scalability, T-SQL development and high-availability. In 2006 Joe earned the \u201cMicrosoft Certified Master: SQL Server 2005\u201d certification and in 2008 he earned the \u201cMicrosoft Certified Master: SQL Server 2008\u201d certification. In 2009 he took over responsibility for the entire SQL Server Microsoft Certified Master program and held that post until 2011. He was given the SQL Server MVP award in 2013.\",\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/joe\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/josephsack\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/joe\/author\/joe\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Exceptions - what sys.dm_db_index_usage_stats doesn't tell you - Joe Sack","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\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/","og_locale":"en_US","og_type":"article","og_title":"Exceptions - what sys.dm_db_index_usage_stats doesn't tell you - Joe Sack","og_description":"I was thinking back to a conversation I had some time ago regarding cases when sys.dm_db_index_usage_stats does not get updated after an index is used for just the statistics associated with the indexed columns.&nbsp; What makes this profession so interesting is that almost every tool we use has a &quot;yes, but&#8230;&quot; associated with it.&nbsp; What [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/","og_site_name":"Joe Sack","article_published_time":"2011-11-11T01:20:00+00:00","author":"Joseph Sack","twitter_misc":{"Written by":"Joseph Sack","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/","name":"Exceptions - what sys.dm_db_index_usage_stats doesn't tell you - Joe Sack","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website"},"datePublished":"2011-11-11T01:20:00+00:00","dateModified":"2011-11-11T01:20:00+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/exceptions-what-sys-dm_db_index_usage_stats-doesnt-tell-you\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/joe\/"},{"@type":"ListItem","position":2,"name":"Indexing","item":"https:\/\/www.sqlskills.com\/blogs\/joe\/category\/indexing\/"},{"@type":"ListItem","position":3,"name":"Exceptions &#8211; what sys.dm_db_index_usage_stats doesn&#8217;t tell you"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/joe\/","name":"Joe Sack","description":"SQL Server Performance Tuning, High Availability and Disaster Recovery Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/joe\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/533eb0113a15fb5a6e8067a49e4ae648","name":"Joseph Sack","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/joe\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a4b39a7719a6bfff1add3ec00527810734579ee114d6d983e8e68f937b77be96?s=96&d=mm&r=g","caption":"Joseph Sack"},"description":"Joe Sack is a Principal Consultant with SQLskills. He has worked as a SQL Server professional since 1997 and has supported and developed for SQL Server environments in financial services, IT consulting, manufacturing, retail and the real estate industry. Prior to joining SQLskills he worked at Microsoft as a Premier Field Engineer supporting very large enterprise customer environments. He was responsible for providing deep SQL Server advisory services, training, troubleshooting and ongoing solutions guidance. His areas of expertise include performance tuning, scalability, T-SQL development and high-availability. In 2006 Joe earned the \u201cMicrosoft Certified Master: SQL Server 2005\u201d certification and in 2008 he earned the \u201cMicrosoft Certified Master: SQL Server 2008\u201d certification. In 2009 he took over responsibility for the entire SQL Server Microsoft Certified Master program and held that post until 2011. He was given the SQL Server MVP award in 2013.","sameAs":["http:\/\/3.209.169.194\/blogs\/joe","https:\/\/twitter.com\/https:\/\/twitter.com\/josephsack"],"url":"https:\/\/www.sqlskills.com\/blogs\/joe\/author\/joe\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/comments?post=518"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/posts\/518\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/media?parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/categories?post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/joe\/wp-json\/wp\/v2\/tags?post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}