tag:blogger.com,1999:blog-36179084127412009592024-02-19T07:05:32.116-08:00sql.sasquatchMaybe ya seen my @sqL_handLe on the Twitter?
:-)SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.comBlogger298125tag:blogger.com,1999:blog-3617908412741200959.post-40117700579243744122023-03-10T10:31:00.004-08:002023-03-10T10:31:59.854-08:00Big-Big #SQLServer Table Migration via bcp (echoes of Friday, February 8, 2013)<p>Today (2023 March 10) I am having memories of helping with bcp from one SQL Server 2008 R2 database to another of a 9.5 billion+ row table back in 2013. Yikes. bcp out - no need to think about uniqueifiers and error 666.</p><p>bcp in of 9.5 billion rows to a table with a clustered index and some NCIs on the other hand...</p><p>
</p><p><br />
</p><div class="wp_syntax">
<div class="code">
<pre class="tsql" style="font-family: monospace;"><span style="color: blue;">SELECT text FROM sys.messages WHERE message_id = 666 and language_id=1033</span><span style="color: black;"></span></pre>
</div>
</div>
<br />
<blockquote>
The maximum system-generated unique value for a duplicate group was
exceeded for index with partition ID %I64d. Dropping and re-creating the
index may resolve this; otherwise, use another clustering key.</blockquote>SQL 2005 kb 937533 is relevant. Table spool may only be able
to handle 2,147,483,648 input rows before exhausting the available
values for uniqueifier.<br />
<br />
<div class="MsoNormal"><span style="color: #1f497d;"><a href="http://support.microsoft.com/kb/937533" target="_blank">FIX: Error message when you run a query in SQL Server 2005: "Cannot insert duplicate key row in object <TableName> with unique index <IndexName>"</a></span></div><p></p><p>
Here's a SQL Server 2008 example from the wayback machine.<br />
</p><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><a href="https://web.archive.org/web/20130331024751/http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/0fab5f20-e796-4ac0-891e-b2076a31c031" target="_blank">Getting MSG 666: The maximum system-generated unique value for a duplicate group was exceeded for index</a></span><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"> </span></div><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">First posted 2010 March 8 </span></div><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"> </span></div><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">General considerations around uniqueifier and error 666 here. <br /></span></div><div style="text-align: left;"><div style="text-align: left;"><a href="https://techcommunity.microsoft.com/t5/sql-server-support-blog/uniqueifier-considerations-and-error-666/ba-p/319096">Uniqueifier considerations and error 666</a> </div><div style="text-align: left;">2018 February 16</div><div style="text-align: left;"> </div><div style="text-align: left;">Now i *think* if the -b parameter for bcp specifies a batch size (maybe 100,000 or a million in this case) for an humongous import it will:</div><div style="text-align: left;">- lower the liability for transaction log full that accompanies simple recovery model, ADR not enabled in SQL Server 2019 and beyond, and a clustered index which is non-empty to start with <br /></div><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">- lower the maximum footprint of spool or spill in tempdb for sort before clustered index insert</span></div><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">- avoid potential uniqueifier 666 errors</span></div><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"> </span></div><div style="text-align: left;"><span face=""Calibri","sans-serif"" style="font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Once i get the most recent trouble with big-big table migration sorted out, i'll work on a repro of the problem. <br /></span></div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-64788528795148253902023-01-31T10:29:00.004-08:002023-01-31T10:55:25.761-08:00#SQLServer - USE HINT ('DISABLE_OPTIMIZER_ROWGOAL') - SURPRISE! TOP operator in graphical query plan<p> Hello!!!</p><p> Sometimes perhaps the things I care about will really leave people wondering. :-)</p><p>In this case, it's a SQL Server graphical query plan oddity.</p><p>I don't think this behavior is necessarily related to a performance problem.</p><p>But I think this behavior can make it *harder* to troubleshoot SQL Server graphical query plans for performance. This is a case where a TOP operator shows up in a graphical plan unexpectedly - and seemingly against the expressed intent of the USE HINT ('DISABLE_OPTIMIZER_ROWGOAL') hint.</p><p>Here are some sources for additional background about the general idea.<br /></p><p>KB2667211 - A query may take a long time to run if the query optimizer uses the Top operator in SQL Server 2008 R2 or in SQL Server 2012<br /><a href="https://support.microsoft.com/en-us/topic/kb2667211-a-query-may-take-a-long-time-to-run-if-the-query-optimizer-uses-the-top-operator-in-sql-server-2008-r2-or-in-sql-server-2012-780ec760-894a-3aac-0d61-e954ea05633f">https://support.microsoft.com/en-us/topic/kb2667211-a-query-may-take-a-long-time-to-run-if-the-query-optimizer-uses-the-top-operator-in-sql-server-2008-r2-or-in-sql-server-2012-780ec760-894a-3aac-0d61-e954ea05633f</a><br /><br />KB4051361 - Optimizer row goal information in query execution plan added in SQL Server 2014, 2016 and 2017<br /><a href="https://support.microsoft.com/en-us/topic/kb4051361-optimizer-row-goal-information-in-query-execution-plan-added-in-sql-server-2014-2016-and-2017-ec130d21-1adc-3d3d-95a5-cdb075722269">https://support.microsoft.com/en-us/topic/kb4051361-optimizer-row-goal-information-in-query-execution-plan-added-in-sql-server-2014-2016-and-2017-ec130d21-1adc-3d3d-95a5-cdb075722269</a><br /><br />Inside the Optimizer: Row Goals In Depth<br />Paul White<br />@sql_kiwi<br />2010 August 18<br /><a href="https://www.sql.kiwi/2010/08/inside-the-optimiser-row-goals-in-depth.html">https://www.sql.kiwi/2010/08/inside-the-optimiser-row-goals-in-depth.html</a> <br /></p><p>All right. Game on.</p><p>A little bit of info about the system.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaB6YrZ4-UzcKPLo8RiHQWJzoZrEMNiZTdxtzNArWvvzO78aTYDfu5qgRX5vS9yKeqpBkEsn9wv160ES8N2bHcl51ke39hWRd82eluqiVHkK2k_bN-xEtXlS-d-9FXXbPayBQM2ZdEHvDmwaZ9CrvhcP1xoShbuHtjlMpBnNVgSM8dV8_wirEkt1Z8Gw/s732/Picture1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="282" data-original-width="732" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaB6YrZ4-UzcKPLo8RiHQWJzoZrEMNiZTdxtzNArWvvzO78aTYDfu5qgRX5vS9yKeqpBkEsn9wv160ES8N2bHcl51ke39hWRd82eluqiVHkK2k_bN-xEtXlS-d-9FXXbPayBQM2ZdEHvDmwaZ9CrvhcP1xoShbuHtjlMpBnNVgSM8dV8_wirEkt1Z8Gw/s16000/Picture1.png" /></a></div><br />Let's do some setup (I'll append all of the T-SQL at the end of the blog post for those that want to follow along at home).<p></p><p> <br /></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFbSup1pra9VA7chkPhyZjnxCmOhHsRFhRHMbYhBwGH3aWuKy7k64G2B6g1tPDZD3dtb7pEdYxKCf0A_pK8V15l7qHptUipVw1yQNlqZQ1EI2uUDnoIxs7L1CRnMJkHjOB1POnT8T4IdB0qtWMhaoPxKU3BK-1MKnuQcW-ugBfZ42XRWVnC6Uz0ik-8A/s733/Picture2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="543" data-original-width="733" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFbSup1pra9VA7chkPhyZjnxCmOhHsRFhRHMbYhBwGH3aWuKy7k64G2B6g1tPDZD3dtb7pEdYxKCf0A_pK8V15l7qHptUipVw1yQNlqZQ1EI2uUDnoIxs7L1CRnMJkHjOB1POnT8T4IdB0qtWMhaoPxKU3BK-1MKnuQcW-ugBfZ42XRWVnC6Uz0ik-8A/s16000/Picture2.png" /></a></div><br /><p></p><p>OK, let's see what our folly hath wrought. Good, good. Let the A9 flow...<br /></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSKPrhbyPlNS2phKaZivAIvmypVOdd2RvlwCTFS6ECdnYCGCxmrxwpHjmpOgcf45GPmC6v7B8blLqwXphpf4ce798QfKwAngURzjqJTsoL8JdQvk7f0sqfhjGehS0dXSp4iFxWxgXi040G4CvP-VxUcJ1tCK1Nb_YIqCx-CS6Op5lSetmlEUjBMkVoog/s733/Picture3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="310" data-original-width="733" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSKPrhbyPlNS2phKaZivAIvmypVOdd2RvlwCTFS6ECdnYCGCxmrxwpHjmpOgcf45GPmC6v7B8blLqwXphpf4ce798QfKwAngURzjqJTsoL8JdQvk7f0sqfhjGehS0dXSp4iFxWxgXi040G4CvP-VxUcJ1tCK1Nb_YIqCx-CS6Op5lSetmlEUjBMkVoog/s16000/Picture3.png" /></a></div><p></p><p>I know this query seems almost non-sensical. But I assure you it was lovingly distilled from a much more complex case I ran into in the field. Sure, the query could be simplified. But that's not the point of this exercise :-) Just grabbing the estimated plan here, because that's all I care about in this repro.</p><p>(If t1 and t0 were actually different heaps this would be about as good SQL Server could do without any indexes.)<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2KZieS6e8vkzYG1t-_BFkvIUMr2BmpX_qeb3xPkpt4F9qeGUa7MgVAMcfP-gR5x9IMoxf0sJylEXsoG6w-30dGxeC2usL-esINIHCZH-ry6jPwuf56VoVsBmfrzPIzWo_v04IQmqNnSX_mGVyon_4mr65RHNRPAd16qpvj5hfJB8DlbQNfZbUSHKOaQ/s990/Picture4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="406" data-original-width="990" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2KZieS6e8vkzYG1t-_BFkvIUMr2BmpX_qeb3xPkpt4F9qeGUa7MgVAMcfP-gR5x9IMoxf0sJylEXsoG6w-30dGxeC2usL-esINIHCZH-ry6jPwuf56VoVsBmfrzPIzWo_v04IQmqNnSX_mGVyon_4mr65RHNRPAd16qpvj5hfJB8DlbQNfZbUSHKOaQ/s16000/Picture4.png" /></a></div><br /><p>OK, it's a funky query... but nothing too unusual yet in the graphical plan.</p><p>So we've got a query that probably no *person* would write and the graphical plan isn't really too objectionable. Why don't we add a hint that no *person* would add to this query, for good measure? One that would be expected to have no effect? If there isn't an apparent row goal already, what change could come about if we added the DISABLE_OPTIMIZER_ROWGOAL hint?</p><p>Oh. That's weird. A TOP operator magically appeared in the plan. <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnNamNjPRNIK7vSq_qJ0xYQoYT-aDu9ziKKH29RALl2GpQ6YOFJvJv68NGWBj1C8WczgCsnNQoWb9BIfP7630PVo9aCMcBVZ1xF8dRYGdxIR0D5wc3PNstoE2G4Qiki5R3ATamXix8nHh4AK0tX8d8BG9_d28TbzCDK6BhRyFgXj4pF4V5MekQIJgDjQ/s3406/Picture5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1461" data-original-width="3406" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnNamNjPRNIK7vSq_qJ0xYQoYT-aDu9ziKKH29RALl2GpQ6YOFJvJv68NGWBj1C8WczgCsnNQoWb9BIfP7630PVo9aCMcBVZ1xF8dRYGdxIR0D5wc3PNstoE2G4Qiki5R3ATamXix8nHh4AK0tX8d8BG9_d28TbzCDK6BhRyFgXj4pF4V5MekQIJgDjQ/w991-h426/Picture5.png" width="991" /></a></div><p>The attribute EstimateRowsWithoutRowGoal (discussed in the second KB article linked above) doesn't appear in the plan XML. So... I guess this is "row goal lite" or something?</p><p> </p><p>Martin Smith recommended testing the a hint to disable a rule: QUERYRULEOFF GbAggToConstScanOrTop.</p><p>The surprise TOP operator still shows up in the estimated plan. <br /></p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF0qTAdIr_T4_vloHMh3GxJF4ZOC2WHd4_ehd6xIYCsk4cgFauB4oIIEGO3ccbmaS6e5miQ4yE2fhnxKTVR_z4zZTEfWnEloybqC_8zzfNsPwlpKhhhA9hnGWayY6Zld00Zypk27fnif_G57I3jMrYj1UF-CcrItMeWT1LaEnmN2plXIqG0yXlrCc5Hw/s3418/Picture6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1534" data-original-width="3418" height="443" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF0qTAdIr_T4_vloHMh3GxJF4ZOC2WHd4_ehd6xIYCsk4cgFauB4oIIEGO3ccbmaS6e5miQ4yE2fhnxKTVR_z4zZTEfWnEloybqC_8zzfNsPwlpKhhhA9hnGWayY6Zld00Zypk27fnif_G57I3jMrYj1UF-CcrItMeWT1LaEnmN2plXIqG0yXlrCc5Hw/w989-h443/Picture6.png" width="989" /></a></div><br /> And... I didn't realize this until after I initially published this blog post.<p></p><p>The sum of the costs of the operators in the graphical plans with the surprise TOP operator... is 106%.<br /></p><p></p><p> </p><p>~~~ <br /></p><p>Here's the T-SQL for those that want to have their own fun :-) <br /></p><p><br /></p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: none 100% / 1 / 0 stretch; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: medium solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: #008800; font-weight: bold;">CREATE</span> <span style="color: #008800; font-weight: bold;">TABLE</span> <span style="color: #333333;">#</span>temp (col1 NVARCHAR(<span style="color: #0000dd; font-weight: bold;">300</span>) <span style="color: #008800; font-weight: bold;">NOT</span> <span style="color: #008800; font-weight: bold;">NULL</span>);
;<span style="color: #008800; font-weight: bold;">WITH</span>
n1 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">1</span> <span style="color: #008800; font-weight: bold;">UNION</span> <span style="color: #008800; font-weight: bold;">ALL</span> <span style="color: #008800; font-weight: bold;">SELECT</span> <span style="color: #0000dd; font-weight: bold;">1</span>)
, n2 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">1</span> <span style="color: #008800; font-weight: bold;">FROM</span> n1 a1 <span style="color: #008800; font-weight: bold;">CROSS</span> <span style="color: #008800; font-weight: bold;">JOIN</span> n1 a2)
, n3 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">1</span> <span style="color: #008800; font-weight: bold;">FROM</span> n2 a1 <span style="color: #008800; font-weight: bold;">CROSS</span> <span style="color: #008800; font-weight: bold;">JOIN</span> n2 a2)
, n4 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">1</span> <span style="color: #008800; font-weight: bold;">FROM</span> n3 a1 <span style="color: #008800; font-weight: bold;">CROSS</span> <span style="color: #008800; font-weight: bold;">JOIN</span> n3 a2)
, n5 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">1</span> <span style="color: #008800; font-weight: bold;">FROM</span> n4 a1 <span style="color: #008800; font-weight: bold;">CROSS</span> <span style="color: #008800; font-weight: bold;">JOIN</span> n4 a2)
, n6 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> <span style="color: #0000dd; font-weight: bold;">1</span> <span style="color: #008800; font-weight: bold;">FROM</span> n5 a1 <span style="color: #008800; font-weight: bold;">CROSS</span> <span style="color: #008800; font-weight: bold;">JOIN</span> n3 a2)
, n7 <span style="color: #008800; font-weight: bold;">AS</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> n <span style="color: #333333;">=</span> ROW_NUMBER() OVER (<span style="color: #008800; font-weight: bold;">ORDER</span> <span style="color: #008800; font-weight: bold;">BY</span> (<span style="color: #008800; font-weight: bold;">SELECT</span> <span style="color: #008800; font-weight: bold;">NULL</span>)) <span style="color: #008800; font-weight: bold;">FROM</span> n6)
<span style="color: #008800; font-weight: bold;">INSERT</span> <span style="color: #008800; font-weight: bold;">INTO</span> <span style="color: #333333;">#</span>temp
<span style="color: #008800; font-weight: bold;">SELECT</span> <span style="color: #008800; font-weight: bold;">CASE</span> <span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">11</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A1'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">10</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A2'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">9</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A3'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">8</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A4'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">7</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A5'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">6</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A6'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">5</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A7'</span>
<span style="color: #008800; font-weight: bold;">WHEN</span> n<span style="color: #333333;">%</span><span style="color: #0000dd; font-weight: bold;">4</span><span style="color: #333333;">=</span><span style="color: #0000dd; font-weight: bold;">0</span> <span style="color: #008800; font-weight: bold;">THEN</span> <span style="background-color: #fff0f0;">'A8'</span>
<span style="color: #008800; font-weight: bold;">ELSE</span> <span style="background-color: #fff0f0;">'A9'</span>
<span style="color: #008800; font-weight: bold;">END</span>
<span style="color: #008800; font-weight: bold;">FROM</span> n7;
<span style="color: #008800; font-weight: bold;">SELECT</span> col1, how_many <span style="color: #333333;">=</span> <span style="color: #008800; font-weight: bold;">count</span>(<span style="color: #333333;">*</span>)
<span style="color: #008800; font-weight: bold;">FROM</span> <span style="color: #333333;">#</span>temp
<span style="color: #008800; font-weight: bold;">GROUP</span> <span style="color: #008800; font-weight: bold;">BY</span> col1
<span style="color: #008800; font-weight: bold;">ORDER</span> <span style="color: #008800; font-weight: bold;">BY</span> col1 <span style="color: #008800; font-weight: bold;">ASC</span>;
<span style="color: #008800; font-weight: bold;">SELECT</span> col1
<span style="color: #008800; font-weight: bold;">FROM</span> <span style="color: #333333;">#</span>temp t0
<span style="color: #008800; font-weight: bold;">WHERE</span> <span style="color: #008800; font-weight: bold;">EXISTS</span> ( <span style="color: #008800; font-weight: bold;">SELECT</span> <span style="color: #0000dd; font-weight: bold;">1</span>
<span style="color: #008800; font-weight: bold;">FROM</span> <span style="color: #333333;">#</span>temp t1
<span style="color: #008800; font-weight: bold;">WHERE</span> t1.col1 <span style="color: #333333;">=</span> <span style="background-color: #fff0f0;">'A9'</span>
<span style="color: #008800; font-weight: bold;">AND</span> t0.col1 <span style="color: #333333;">=</span> t1.col1 )
<span style="color: #008800; font-weight: bold;">OPTION</span>(RECOMPILE, USE HINT(<span style="background-color: #fff0f0;">'FORCE_DEFAULT_CARDINALITY_ESTIMATION'</span>);
<span style="color: #008800; font-weight: bold;">SELECT</span> col1
<span style="color: #008800; font-weight: bold;">FROM</span> <span style="color: #333333;">#</span>temp t0
<span style="color: #008800; font-weight: bold;">WHERE</span> <span style="color: #008800; font-weight: bold;">EXISTS</span> ( <span style="color: #008800; font-weight: bold;">SELECT</span> <span style="color: #0000dd; font-weight: bold;">1</span>
<span style="color: #008800; font-weight: bold;">FROM</span> <span style="color: #333333;">#</span>temp t1
<span style="color: #008800; font-weight: bold;">WHERE</span> t1.col1 <span style="color: #333333;">=</span> <span style="background-color: #fff0f0;">'A9'</span>
<span style="color: #008800; font-weight: bold;">AND</span> t0.col1 <span style="color: #333333;">=</span> t1.col1 )
<span style="color: #008800; font-weight: bold;">OPTION</span>(RECOMPILE, USE HINT(<span style="background-color: #fff0f0;">'FORCE_DEFAULT_CARDINALITY_ESTIMATION'</span>, <span style="background-color: #fff0f0;">'DISABLE_OPTIMIZER_ROWGOAL'</span>));
</pre></div>
<p><br /></p><p><br /></p><p><br /></p><p><br /></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com1tag:blogger.com,1999:blog-3617908412741200959.post-50431722848126956332022-12-08T10:40:00.000-08:002022-12-08T10:40:08.769-08:00Let's check up on the SQL Server transaction log buffers in SQL Server 2019 CU 16!!!<p style="text-align: left;"> I'm looking into a severe LOGFLUSHQ spinlock issue in SQL Server 2019 CU16.</p><p style="text-align: left;">The issue first presented itself afaik in CU 15.</p><p style="text-align: left;">I'll probably blog more thoroughly about all that another day.</p><p style="text-align: left;">Here I just wanted to return to a detail from yesteryear.</p><p style="text-align: left;">Last time I checked was probably SQL Server 2014 - at that time each database had 128 in-memory transaction log buffers, each of which could be up to 60 kb (hence why each transaction log write could be up to 60 kb).</p><p style="text-align: left;">Since the logflushq spinlock contention is in the context of transaction log flush/write queue management, I figured I'd better check if the number of buffers had increased, or if the maximum size of those buffers had increased.</p><p style="text-align: left;">The T-SQL code I used is down below...</p><p style="text-align: left;">These results from SSMS show that SQL Server 2019 is what I am used to so far:</p><p style="text-align: left;">128 transaction log buffers, each with a max size of 60k.</p><p style="text-align: left;">And lc_state for those buffers can be retrieved from DBCC DBTABLE.</p><p style="text-align: left;"><br /></p><p style="text-align: left;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiL_ZbU0PPask7dEuzjrUYPnchiE38VM9cFJyv6xv37rjExw8UJs_Eq7i15et60b5McC4tPkEAtCtdk8ZZUnYQ-Wp0W0aEXcsyMjIu2CCp_29cgdoUFr3xK_uRfHGUfKQbVknw3ayT22uGw3uf8mC4nG2tUfCxlyUl-_l8ONFM5U-daPpzAIY0KpXLfjw" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="435" data-original-width="930" height="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEiL_ZbU0PPask7dEuzjrUYPnchiE38VM9cFJyv6xv37rjExw8UJs_Eq7i15et60b5McC4tPkEAtCtdk8ZZUnYQ-Wp0W0aEXcsyMjIu2CCp_29cgdoUFr3xK_uRfHGUfKQbVknw3ayT22uGw3uf8mC4nG2tUfCxlyUl-_l8ONFM5U-daPpzAIY0KpXLfjw=w640-h300" width="640" /></a></div><br /><br /><p></p><p style="text-align: left;"><br /></p><div style="text-align: left;">DROP TABLE IF EXISTS #table; <br />CREATE TABLE #table<br /><span style="white-space: pre;"> </span>([ParentObject]<span style="white-space: pre;"> </span>VARCHAR(255),<br /><span style="white-space: pre;"> </span>[Object]<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>VARCHAR(255),</div><div style="text-align: left;"><span style="white-space: pre;"> </span>[Field]<span style="white-space: pre;"> </span>VARCHAR(255),<br /><span style="white-space: pre;"> </span>[Value]<span style="white-space: pre;"> </span>VARCHAR(255)<br /><span style="white-space: pre;"> </span>);</div><div style="text-align: left;"><br />DECLARE @sqlT NVARCHAR(1000)=<br />'dbcc dbtable(' + quotename(db_name()) + ') with tableresults, no_infomsgs';</div><div style="text-align: left;"><br />INSERT INTO #table<br />EXEC (@sqlT);</div><div style="text-align: left;"><br />SELECT SQLServer_Version = @@version;</div><div style="text-align: left;"><br />SELECT ParentObject<br />FROM #table<br />WHERE LEFT(ParentObject, </div><div style="text-align: left;">CASE WHEN PATINDEX('% @%', ParentObject) > 2 </div><div style="text-align: left;">THEN PATINDEX('% @%', ParentObject) - 1 ELSE 1 END) = 'LogMgr'<br />GROUP BY ParentObject;</div><div style="text-align: left;"><br />WITH LogMgr AS <br />(SELECT ParentObject<br />FROM #table<br />WHERE LEFT(ParentObject, </div><div style="text-align: left;">CASE WHEN PATINDEX('% @%', ParentObject) > 2 </div><div style="text-align: left;">THEN PATINDEX('% @%', ParentObject) - 1 ELSE 1 END) = 'LogMgr'<br />GROUP BY ParentObject),<br />LogMgr_objects AS<br />(SELECT OBJECT_TYPE = LEFT(t.Object, </div><div style="text-align: left;">CASE WHEN PATINDEX('% @%', t.Object) > 2 </div><div style="text-align: left;">THEN PATINDEX('% @%', t.Object) - 1 ELSE 1 END),<br />t.object<br />FROM #table t<br />JOIN LogMgr ON t.ParentObject = LogMgr.ParentObject<br />GROUP BY LEFT(t.Object, </div><div style="text-align: left;">CASE WHEN PATINDEX('% @%', t.Object) > 2 </div><div style="text-align: left;">THEN PATINDEX('% @%', t.Object) - 1 ELSE 1 END), t.object)<br />SELECT LO.OBJECT_TYPE, object_count = COUNT(*)<br />FROM LogMgr_objects LO<br />GROUP BY LO.OBJECT_TYPE;</div><div style="text-align: left;"><br />SELECT t.Field, t.value, NUM_log_buffers = count(*)<br />FROM #table t<br />WHERE t.object LIKE 'LC @0x%'<br />AND t.field = 'lc_maxDataSize'<br />GROUP BY t.field, t.value;</div><div style="text-align: left;"><br />SELECT t.Field, t.value, NUM_log_buffers = count(*)<br />FROM #table t<br />WHERE t.object LIKE 'LC @0x%'<br />AND t.field = 'lc_state'<br />GROUP BY t.field, t.value;</div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-70987821686692491362022-04-04T20:51:00.005-07:002022-12-08T15:36:19.712-08:00SQL Server - recursive CTE to retrieve dependency chain of Resource Governor Classifier Function<p>SQL Server Resource Governor classifier functions can include references to functions as well as tables in the master database. And each referenced function can in turn reference additional functions and tables.</p><p>In order to get a thorough understanding of how sessions are classified on a given system, one may need some familiarity with each function or table in the dependency tree.</p><p>This recursive function will retrieve all object names in the dependency tree (object names will be retrieved but column names will not be retrieved, due to the referenced_minor_id = 0 qualifier.</p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">;<span style="color: blue;">WITH</span> DTree <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> root_id = classifier_function_id<br /> , referencing_id = classifier_function_id
, referenced_id = classifier_function_id
, NestLevel = 1
<span style="color: blue;">FROM</span> sys.dm_resource_governor_configuration
<span style="color: blue;"> UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;"> SELECT</span> root_id <span> </span><span> </span>= rgc.classifier_function_id
, d1.referencing_id
, d1.referenced_id
, NestLevel + 1
<span style="color: blue;">FROM</span> sys.sql_expression_dependencies d1
<span style="color: blue;">JOIN</span> DTree r <span style="color: blue;">ON</span> d1.referencing_id = r.referenced_id
<span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> sys.dm_resource_governor_configuration rgc
<span style="color: blue;">WHERE</span> d1.referenced_minor_id = 0)
<span style="color: blue;">SELECT</span> classifier_function = OBJECT_NAME(t1.root_id)
, referencing_name = OBJECT_NAME(t1.referencing_id)
, referenced_name = OBJECT_NAME(t1.referenced_id)
, referenced_type = so.type_desc
, t1.NestLevel
<span style="color: blue;">FROM</span> DTree t1
<span style="color: blue;">JOIN</span> sys.objects so <span style="color: blue;">ON</span> so.object_id = t1.referenced_id
<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> t1.NestLevel, t1.referencing_id;
</pre></div>
<p><br /></p><p><br /></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-35653516959547434522022-04-04T20:32:00.001-07:002022-04-04T20:32:59.616-07:00SQL Server - recursive CTE to retrieve rowstore index IAM chain<p> A SQL Server recursive CTE can reach a maximum level of recursion of 32768.</p><p>Strting with the first IAM page for a rowstore index, the entire IAM chain can be retrieved, as each IAM page indicates the next page in the chain.</p><p>So a recursive CTE could reliably retrieve IAM chains for the rowstore indexes in a filegroup until the filegroup exceeds 128 TB in aggregate file size. (Because each IAM page accounts for database file usage in a ~4GB range of a file, for a single rowstore index.)</p><p>This CTE will retrieve an IAM chain. AFAIK, it's performance will beat the brakes off any similar query relying on sys.dm_db_database_page_allocations.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRhEgTuUZTvS8mkObW6wlq62Fs6aP3OqKZwZb7-78IHuigG6Cz1vacjuScf3_BT4QXuax565xSnAjxDFT6cw5MKNm8jbrACvS4pHwBGakCsChbokt4hcmWcmY8F9gCXc2V5JQs9c1vwrANc9WQbfV-sl4fk0lAOhKi8j7tCWNRGrQVTUsqWl8dxIdkfQ/s1112/Picture1.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1055" data-original-width="1112" height="826" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRhEgTuUZTvS8mkObW6wlq62Fs6aP3OqKZwZb7-78IHuigG6Cz1vacjuScf3_BT4QXuax565xSnAjxDFT6cw5MKNm8jbrACvS4pHwBGakCsChbokt4hcmWcmY8F9gCXc2V5JQs9c1vwrANc9WQbfV-sl4fk0lAOhKi8j7tCWNRGrQVTUsqWl8dxIdkfQ/w870-h826/Picture1.png" width="870" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">DECLARE</span> @object_id INT = OBJECT_ID(<span style="color: #a31515;">'NOTES_FROM_BEYOND'</span>);
<span style="color: blue;">DECLARE</span> @index_id SMALLINT = 1;
<span style="color: blue;">DECLARE</span> @type_desc VARCHAR(20) = <span style="color: #a31515;">'IN_ROW_DATA'</span>;</pre><pre style="line-height: 125%; margin: 0px;"><span style="color: green;"> </span> /*IN_ROW_DATA, ROW_OVERFLOW_DATA, LOB_DATA*/</pre><pre style="line-height: 125%; margin: 0px;">;<span style="color: blue;">WITH</span> start_page <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> fp.file_id
, fp.page_id
<span style="color: blue;">FROM</span> sys.system_internals_allocation_units siau
<span style="color: blue;">JOIN</span> sys.partitions sp
<span style="color: blue;">ON</span> siau.container_id = sp.partition_id
<span style="color: blue;">CROSS</span> APPLY sys.fn_PhysLocCracker(siau.first_iam_page) fp
<span style="color: blue;">WHERE</span> sp.object_id = @object_id
<span style="color: blue;">AND</span> sp.index_id = @index_id
<span style="color: blue;">AND</span> siau.type_desc = @type_desc )
, rec_cte <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> next_page_file_id = <span style="color: blue;">CONVERT</span>(BIGINT, sp.file_id)
, next_page_page_id = <span style="color: blue;">CONVERT</span>(BIGINT, sp.page_id)
, iam_page_ordinal = 1
<span style="color: blue;">FROM</span> start_page sp</pre><pre style="line-height: 125%; margin: 0px;"> <span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: blue;">CONVERT</span>(BIGINT, dpi.next_page_file_id)
, <span style="color: blue;">CONVERT</span>(BIGINT, dpi.next_page_page_id)
, iam_page_ordinal = iam_page_ordinal + 1
<span style="color: blue;">FROM</span> rec_cte
<span style="color: blue;">CROSS</span> APPLY sys.dm_db_page_info(DB_ID(), next_page_file_id, next_page_page_id, <span style="color: #a31515;">'DETAILED'</span>) dpi
<span style="color: blue;">WHERE</span> dpi.next_page_file_id <> 0<span> </span>)
<span style="color: blue;">SELECT</span> rc.iam_page_ordinal, file_id = rc.next_page_file_id, page_id = rc.next_page_page_id
<span style="color: blue;">FROM</span> rec_cte rc
<span style="color: blue;">WHERE</span> rc.next_page_file_id <span style="color: blue;">IS</span> <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>
<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> rc.iam_page_ordinal
<span style="color: blue;">OPTION</span> (maxrecursion 32767);
</pre></div>
SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-78193653644781131992022-02-28T22:22:00.001-08:002022-03-16T07:01:47.033-07:00#SQLServer Trivial Plans for Inserts; Stats Expectations and Reality<span style="font-family: inherit;">OK. SQL Server trivial plans for rowstore table INSERT. And related optimizer stats interaction.</span><div><br /></div><div>TL;DR cached trivial plans for INSERT can be surprisingly stubborn. If a query matches to one, it won't perform or queue a stats update even if the stats are stale. If the stats have been updated and would otherwise warrant a per-index plan - but there is a matching cached trivial plan for a per-row plan... outta luck. Might hafta DBCC FREEPROCCACHE or add OPTION(RECOMPILE) hint to make sure a cached trivial plan doesn't prevent a per-index update for an INSERT when you really want one.</div><div><br /></div><div>~~~~ <br /><div><span style="font-family: inherit;"><br /></span></div><div><span style="font-family: inherit;">The blog post referenced below, first published 2015 March 16, is pretty good.</span></div><div><a href="https://techcommunity.microsoft.com/t5/sql-server-support-blog/does-statistics-update-cause-a-recompile/ba-p/318545"><span style="font-family: inherit;">Does statistics update cause a recompile? - Microsoft Tech Community</span></a></div><div><a href="https://techcommunity.microsoft.com/t5/sql-server-support-blog/does-statistics-update-cause-a-recompile/ba-p/318545"><span style="font-family: inherit;">https://techcommunity.microsoft.com/t5/sql-server-support-blog/does-statistics-update-cause-a-recompile/ba-p/318545</span></a></div><div><span style="font-family: inherit;"><br /></span><div><span style="font-family: inherit;">The relevant takeaway from that post is: in a database with AUTO_UPDATE_STATISTICS = ON, a statistics update will NOT invalidate a relevant cached query plan. A subsequent query which qualifies to use a cached plan will continue to use the cached trivial plan. This is <b>Scenario 1 </b>in the blog post. The following text is directly from the blog post.</span></div></div><div><br /></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div><div style="text-align: left;"><span style="color: #333333;"><span style="background-color: #ead1dc; font-family: times;">When a plan is trivial, it’s unnecessary to recompile the query even statistics has been updated. Optimizer generates trivial plan for very simple queries (usually referencing a single table). In XML plan, you will see statementOptmLevel="TRIVIAL". In such case, it’s futile and you won't get a better or different plan.</span></span></div></div></blockquote><p>The demo code in the blog post uses SELECT queries only. In my examples in my own blog post, I'm concerned with INSERT queries. Are INSERT queries eligible for both trivial plans and plans that have been more fully optimized? If INSERT queries can use a trivial plan, is it possible for a cached trivial plan to remain in use when a better and/or different plan could be selected?</p><p>Perhaps the reader is familiar with the Paul White blog post referenced below, from 2013 January 26. In that blog post, Paul White discusses wide, per-index INSERT query plans and narrow, per-row INSERT query plans. How do these plan types relate to trivial plans?</p><div style="text-align: left;"><a href="https://www.sql.kiwi/2013/01/optimizing-t-sql-queries-that-change-data.html">Optimizing T-SQL queries that change data</a></div><div style="text-align: left;"><a href="https://www.sql.kiwi/2013/01/optimizing-t-sql-queries-that-change-data.html">https://www.sql.kiwi/2013/01/optimizing-t-sql-queries-that-change-data.html</a></div><p>OK. Enough jibber-jabber. Time to do something. Like create a stored procedure. Which will be used in a database with AUTO_UPDATE_STATISTICS = ON and AUTO_UPDATE_STATISTICS_ASYNC = OFF.</p><p>This stored procedure will drop two tables if they already exist, then create those two tables. The source table has three columns and a single index - the clustered primary key. The target table also has three columns and a clustered primary key. In addition the target table has two non-clustered indexes.</p><p>The @insert_no_rows parameter controls whether or not there will be an INSERT query from the empty source table to the empty target table. That wouldn't move any data - but maybe it will cache a plan?</p><p>The INSERT query is dynamic SQL - both in the stored procedure and when I issue it adhoc later. It isn't necessary for this query to be dynamic SQL - it was just easier that way to make sure the batch SQL text matched and plan re-use happened when it was a possibility. While writing this blog post at one point the query SQL text in the stored procedure has a different number of tabs preceding the formatted T-SQL than appeared in my adhoc query afterward and it took me forever to figure out why plan re-use wasn't occurring. :-) </p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">CREATE</span> <span style="color: blue;">OR</span> <span style="color: blue;">ALTER</span> <span style="color: blue;">PROCEDURE</span> test__trivial_plan_inserts @insert_no_rows INT = 0, @x INT = 0
<span style="color: blue;">AS</span>
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">DROP</span> <span style="color: blue;">TABLE</span> IF <span style="color: blue;">EXISTS</span> trivial_test_source;
<span style="color: blue;">DROP</span> <span style="color: blue;">TABLE</span> IF <span style="color: blue;">EXISTS</span> trivial_test_target;
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> trivial_test_source
( col1 INT <span style="color: blue;">CONSTRAINT</span> pk__trivial_test_source <span style="color: blue;">PRIMARY</span> <span style="color: blue;">KEY</span> CLUSTERED
, col2 INT
, col3 INT
);
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> trivial_test_target
( col1 INT <span style="color: blue;">CONSTRAINT</span> pk__trivial_test_target <span style="color: blue;">PRIMARY</span> <span style="color: blue;">KEY</span> CLUSTERED
, col2 INT <span style="color: blue;">INDEX</span> nci__trivial_test_target__col2
, col3 INT <span style="color: blue;">INDEX</span> nci__trivial_test_target__col3
);
<span style="color: green;">-- white space in the INSERT dynamic SQL must match exactly</span>
<span style="color: green;">-- in stored procedure and adhoc EXEC for cached plan reuse</span>
IF @insert_no_rows = 1
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">DECLARE</span> @sqlT NVARCHAR(1000) = N<span style="color: #a31515;">'INSERT INTO trivial_test_target SELECT * FROM trivial_test_source;'</span>
<span style="color: blue;">EXEC</span> (@sqlT);
<span style="color: blue;">END</span>
<span style="color: green;">-- white space in the INSERT dynamic SQL must match exactly</span>
<span style="color: green;">-- in stored procedure and adhoc EXEC for cached plan reuse</span>
;<span style="color: blue;">WITH</span> n0 <span style="color: blue;">AS</span> ( <span style="color: blue;">SELECT</span> TOP (32) n = 1
<span style="color: blue;">FROM</span> master.dbo.spt_values)
, n1 <span style="color: blue;">AS</span> ( <span style="color: blue;">SELECT</span> n = ROW_NUMBER() OVER (<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span>(<span style="color: blue;">SELECT</span> <span style="color: blue;">NULL</span>))
<span style="color: blue;">FROM</span> n0 t1 <span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> n0 t2)
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> trivial_test_source
<span style="color: blue;">SELECT</span> TOP (@x) n, n, n
<span style="color: blue;">FROM</span> n1;
<span style="color: blue;">END</span>
</pre></div>
<div><div><br /></div><div>For the first experiment, let's not worry about caching plans. Let's call the stored procedure like this:</div><div><br /></div><div><span style="background-color: #eeeeee;">EXEC test__trivial_plan_inserts @insert_no_rows = 0, @x = 1023;</span></div><div><span style="background-color: #eeeeee;"><br /></span></div><div><span style="background-color: white;">So, give me 1023 rows in table trivial_test_source.</span></div><div><span style="background-color: white;"><br /></span></div><div><span style="background-color: white;">After the stored procedure executes, let's grab an actual plan from this simple INSERT query:</span></div><div><span style="background-color: white;"><br /></span></div><div><div><span style="background-color: #eeeeee;">DECLARE @sqlT NVARCHAR(100) = N'INSERT INTO trivial_test_target SELECT * FROM trivial_test_source;'</span></div><div><span style="background-color: #eeeeee;">EXEC (@sqlT);</span></div><div><span style="background-color: #eeeeee;">-- white space in the INSERT dynamic SQL must match exactly</span></div><div><span style="background-color: #eeeeee;"><span style="background-color: transparent;">-- in stored procedure and adhoc EXEC for cached plan reuse</span></span></div><div><br /></div></div><div><span style="background-color: white;">And here's the actual plan. That's a narrow, per-row plan. Note the estimate of 1023 rows; dead-on.</span></div><div><span style="background-color: white;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgKTDMq2B-z20dUHhqxFGgNtrF_T4WeJIeAa32Y0HmOhSkV6ma6o2y4WckMef31xph9moKZDHQHSNm5Pe6Tq031agjlRNB6_RWo8b73x1GvSArRA8u40706vLwTR1A5bUEL9UjVK51ljW82pMMPnZXblwfMEETugj0-7ZX-sth4qjT9tEdQq9Hl_bSUsA=s1282" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="214" data-original-width="1282" height="106" src="https://blogger.googleusercontent.com/img/a/AVvXsEgKTDMq2B-z20dUHhqxFGgNtrF_T4WeJIeAa32Y0HmOhSkV6ma6o2y4WckMef31xph9moKZDHQHSNm5Pe6Tq031agjlRNB6_RWo8b73x1GvSArRA8u40706vLwTR1A5bUEL9UjVK51ljW82pMMPnZXblwfMEETugj0-7ZX-sth4qjT9tEdQq9Hl_bSUsA=w640-h106" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div></div><div>The Object properties in the graphical plan specify the target table indexes which will be updated for each row inserted into the clustered index. So far, so good.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="2475" data-original-width="2374" height="640" src="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=w614-h640" width="614" /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh3KefBF35CcSuRKQgIuI7SUzLaintl8yekGm8v83qZ9RmeOyrLvqDD1At8EVf10EWmwh7RMhztE9txWpJJih5m5XCakCRhdPlliMt-qacfsY8NhV4d_f4EDu5D6aWz2X3Hok0b4pPi6xUFsLu0UQhJJIUT4KdEqExpthFc7iWtiEI1ecai-7gKREXK4A=s2475" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><br /></div></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>If we look at the plan XML, we can see this is a trivial plan.</div><br /><div><img border="0" data-original-height="513" data-original-width="3345" height="98" src="https://blogger.googleusercontent.com/img/a/AVvXsEjvEpOt_v_DiDdl7QagCDVALJlKER-RZzAGHVC3eX1TipSzhK8jxIeI5VHlWwSJomJ8iEtbBti_vEp7kjtiDknl19HTFgsuvi5Esf9DNVeDmREu7TyoLRyFpZi7-K6T2J9dQNjerVt91DLKnX0-WRo_v4wEEtDIROamgcB1SPiFbzpE63iuFE1kRRQWkw=w640-h98" width="640" /></div><div><br /></div><div style="text-align: left;">OK. Now let's call the stored procedure like this:</div><div style="text-align: left;"><span style="background-color: #eeeeee;">EXEC test__trivial_plan_inserts @insert_no_rows = 0, @x = 1024;</span></div><div><br /></div><div><br />That will drop the source and target tables, recreate the tables, and populate the source table with 1024 rows instead of the previous 1023.</div><div><br /></div><div>Now get an actual plan for the insert again:</div><div><br /></div><div><div><span style="background-color: #eeeeee;">DECLARE @sqlT NVARCHAR(100) = N'INSERT INTO trivial_test_target SELECT * FROM trivial_test_source;'</span></div><div><span style="background-color: #eeeeee;">EXEC (@sqlT);</span></div><div><span style="background-color: #eeeeee;">-- white space in the INSERT dynamic SQL must match exactly</span></div><div><span style="background-color: #eeeeee;"><span style="background-color: transparent;">-- in stored procedure and adhoc EXEC for cached plan reuse</span></span></div></div><div><br /></div><div>And... bam!!! Yeah, the graphical plan below certainly looks like a different plan. This is what Paul White refers to as a wide, per-index update.</div><div><br /></div><div>First, at the right of the blue box below, the source table scan operator feeds rows into the clustered index insert operator. No sort is needed to optimize the insert because the source and target tables have the same primary key clustered index definition. These rows are also fed into a table spool at the left of the blue box below. The table spool at the left of the blue box is the same table spool at the left of the gold box - just different zones of the same plan.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhbJtKvTJTBf0EmHwF7w3b8WqQWS_AmU3ThZELW83D5BaXwNSCFtGJb4KHHaIbhyhX6MoiJFdr9l0jdJm_5KWmIkVW4f-lecTOwICF_Mjbu-nZeBD5DffbMpoY1qouKFcVDmSt2-rPrPzvzrDL8f8ZZT9uEtZQq6lGuaRnWc5C3IO5hiadCNS5joBgdFA=s2000" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="539" data-original-width="2000" height="172" src="https://blogger.googleusercontent.com/img/a/AVvXsEhbJtKvTJTBf0EmHwF7w3b8WqQWS_AmU3ThZELW83D5BaXwNSCFtGJb4KHHaIbhyhX6MoiJFdr9l0jdJm_5KWmIkVW4f-lecTOwICF_Mjbu-nZeBD5DffbMpoY1qouKFcVDmSt2-rPrPzvzrDL8f8ZZT9uEtZQq6lGuaRnWc5C3IO5hiadCNS5joBgdFA=w640-h172" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: justify;"><span style="text-align: left;">Table spool populated, it is used as a source for a sort, then insert into a non-clustered index. This happens once in the upper blue box, then again in the lower gold box.</span></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhc5JWaVuB73W8GDXdDdB3w0J-oWQnINfXtqV2aEpX4v3JU4kLTEECmERtTV0g8PkkIQvUshj0Oh4caqBU1KxtGpxjBpHbHhvBxsZloh-6WWMekJeuGbo8jFelkybr3x_dUY1pov4MYbmiCtf6wn96aysuQHJ9RIW80ICjNNoBP_3wilRfyUBzAJJUXmw=s2000" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="539" data-original-width="2000" height="172" src="https://blogger.googleusercontent.com/img/a/AVvXsEhc5JWaVuB73W8GDXdDdB3w0J-oWQnINfXtqV2aEpX4v3JU4kLTEECmERtTV0g8PkkIQvUshj0Oh4caqBU1KxtGpxjBpHbHhvBxsZloh-6WWMekJeuGbo8jFelkybr3x_dUY1pov4MYbmiCtf6wn96aysuQHJ9RIW80ICjNNoBP_3wilRfyUBzAJJUXmw=w640-h172" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">Demonstrating the benefit of a per-index update over a per-row update for an INSERT of many thousand rows is left as an exercise for the reader.</div><div><br /></div><div>While I won't investigate at this time, I do want to make note of an interesting switcheroo that takes place. Recall that within the CREATE TABLE, the clustered primary key and the two non-clustered indexes on col2 and col3 were created with inline syntax.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiE56RYpRMAoc5r-7TigaRfKvlbtLwWbDGzE2wrNrTqJ86D3LutY01WYXLeGxDoMbshbFHKY5Rj9D2fprAV-eg_JH2xCnnNxlwEaK2sG_6VcnJq4maKF819cIhBE4sMcdHx5LBozMHmp8nNaTWAi3rF0MUFaL1eAn1UkZHypfUnuC11JpuUv7MXxAdHMQ=s1198" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="139" data-original-width="1198" height="74" src="https://blogger.googleusercontent.com/img/a/AVvXsEiE56RYpRMAoc5r-7TigaRfKvlbtLwWbDGzE2wrNrTqJ86D3LutY01WYXLeGxDoMbshbFHKY5Rj9D2fprAV-eg_JH2xCnnNxlwEaK2sG_6VcnJq4maKF819cIhBE4sMcdHx5LBozMHmp8nNaTWAi3rF0MUFaL1eAn1UkZHypfUnuC11JpuUv7MXxAdHMQ=w640-h74" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>How did the non-clustered index on col3 become index_id 2, while the nonclustered index on col2 became index_id 3? I don't know - and i don't know of anywhere that could be consequential. Yet.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi9fIwuwZFiGE8N5lF9tyHARmvPbEUkhNq8PvpS8VZii8EMyR9oOeMurrugekhQWYK-ah9hM_Z8VxTb4JAt9sqKvrZFb-RxNEM8q-pW5xGWeiMBMRIou93AYvS5xIHFS-3RAKdngpDC5IVmWjLqiuXT2b2-60BtemsAGAwxzuFfju89spGBbfdmOzbvvw=s1199" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="375" data-original-width="1199" height="200" src="https://blogger.googleusercontent.com/img/a/AVvXsEi9fIwuwZFiGE8N5lF9tyHARmvPbEUkhNq8PvpS8VZii8EMyR9oOeMurrugekhQWYK-ah9hM_Z8VxTb4JAt9sqKvrZFb-RxNEM8q-pW5xGWeiMBMRIou93AYvS5xIHFS-3RAKdngpDC5IVmWjLqiuXT2b2-60BtemsAGAwxzuFfju89spGBbfdmOzbvvw=w640-h200" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>How did I notice that little switcheroo? Well, every per-index INSERT graphical plan I've seen has shown indexes in index_id order from top-down. And when I've observed large per-index updates with sys.dm_tran_locks, the acquisition of locks over time by the session indicates indexes are tended to in index_id order. I won't at this time be investigating further whether per-index updates always handle indexes in index_id order, or how the little index_id switcheroo occurred. Just an interesting bread crumb.</div><div><br /></div><div>Before we do the next part I want to make sure the database is set up like I think...</div><div>Excellent, exactly what I wanted.</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjjLe6CIMg1VaTRMT_pCI2i62EFhM3_2IQHCiN4fMaCxUMojRFNsrIgfrpqyre1ggfr_tJrLXSUDt7miTAAKvb5--Wm7t6ZOUEmYi4_0-1YGLfnko1IcaZgrNI5ei2JbUMvGf8UEjcqbQHTm6nsPpCHEjJNCFSOc6yKejq26jKunz_ibZdRa1QbTKD6sA=s1133" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em; text-align: left;"><img border="0" data-original-height="232" data-original-width="1133" height="132" src="https://blogger.googleusercontent.com/img/a/AVvXsEjjLe6CIMg1VaTRMT_pCI2i62EFhM3_2IQHCiN4fMaCxUMojRFNsrIgfrpqyre1ggfr_tJrLXSUDt7miTAAKvb5--Wm7t6ZOUEmYi4_0-1YGLfnko1IcaZgrNI5ei2JbUMvGf8UEjcqbQHTm6nsPpCHEjJNCFSOc6yKejq26jKunz_ibZdRa1QbTKD6sA=w640-h132" width="640" /></a></div><br /></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>So. This time we drop the tables and recreate them. We issue the INSERT INTO... SELECT while both source and target tables are empty. Then populate the source table with 1024 rows.</div><div><br /></div><div><span style="background-color: #eeeeee;">EXEC test__trivial_plan_inserts @insert_no_rows = 1, @x = 1024;</span></div><div><span style="background-color: white;"><br /></span></div><div><span style="background-color: white;">And now we are ready to grab an actual plan...</span></div><div><span style="background-color: white;"><br /></span></div><div><span style="background-color: white;"><div><span style="background-color: #eeeeee;">DECLARE @sqlT NVARCHAR(100) = N'INSERT INTO trivial_test_target SELECT * FROM trivial_test_source;'</span></div><div><span style="background-color: #eeeeee;">EXEC (@sqlT);</span></div><div><span style="background-color: #eeeeee;">-- white space in the INSERT dynamic SQL must match exactly</span></div><div><span style="background-color: #eeeeee;"><span style="background-color: transparent;">-- in stored procedure and adhoc EXEC for cached plan reuse</span></span></div></span></div><div><span style="background-color: #eeeeee;"><br /></span></div><div><span style="background-color: white;">So now we have 1024 rows - that number of rows previously got a per-index update plan. But this time it got a per-row plan. Huh.</span></div><div><span style="background-color: white;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgSHakAhFU2eekyey-fi_CqTYEl5g8mracN2Q8sAWj6G_0g0dCXxdHQhl4HFlpsh3bx-RdCSEAd_F5vD1YSGDKBfvO-0Rq6UjquCDTczN6Oe-VsKZ9R8n0YzKT6BJwBOkWHcOVfvtrN82lcvY65ouFOuIentX1I3aLKUU23h0rSLzGwfBDXgsGBMhAwag=s1228" style="clear: left; float: left; margin-bottom: 1em; margin-left: 1em; text-align: left;"><img border="0" data-original-height="214" data-original-width="1228" height="112" src="https://blogger.googleusercontent.com/img/a/AVvXsEgSHakAhFU2eekyey-fi_CqTYEl5g8mracN2Q8sAWj6G_0g0dCXxdHQhl4HFlpsh3bx-RdCSEAd_F5vD1YSGDKBfvO-0Rq6UjquCDTczN6Oe-VsKZ9R8n0YzKT6BJwBOkWHcOVfvtrN82lcvY65ouFOuIentX1I3aLKUU23h0rSLzGwfBDXgsGBMhAwag=w640-h112" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>Well, what the heck. If we look at the plan XML we see a clue. RetrievedFromCache.</div><div><br /></div><div><div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="148" data-original-width="1038" height="92" src="https://blogger.googleusercontent.com/img/a/AVvXsEi7ussVoTWmFiMT1SxRqPscUFxXN4Uo09cVyNZ1rXbvo6T-kPLKJJiVysdeSMSEw692S3vjnF1aOn59TYkAWbWGV9qpZbyAnQkGPBfDqWtWfoAZ5m1zsq9gm6meQKnQk6_J_QC9MdRchucvrvXiuY6m1OiwSTAPYTUOeL0BvLvpUFjt-VGufdlDT9J3HQ=w640-h92" width="640" /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Now wait just a minute. That source table went from 0 rows to 1024 rows; did the stats get updated?</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Wow. I guess not. When the insert matched a cached trivial plan, the stats did not get updated even though they were stale and auto update stats is true in this database.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEge11DtNQHua4fMW0jpl0b5FT1ALvX3_wfJ37QUtNkb7HXu5_ZalnYQ7evaPSA2Lk50jR7fwck8Bp_QJXpqGAKU3g7x0uNOme4i8v2hpkz60ga9PjwNLRMU1HF2nWbfPGZbc2LgZMmqbBErFUhHOL47_tsv4DntCJQKuEBMpCBshLS4gRNHg2NVgDWvPg=s1020" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="233" data-original-width="1020" height="146" src="https://blogger.googleusercontent.com/img/a/AVvXsEge11DtNQHua4fMW0jpl0b5FT1ALvX3_wfJ37QUtNkb7HXu5_ZalnYQ7evaPSA2Lk50jR7fwck8Bp_QJXpqGAKU3g7x0uNOme4i8v2hpkz60ga9PjwNLRMU1HF2nWbfPGZbc2LgZMmqbBErFUhHOL47_tsv4DntCJQKuEBMpCBshLS4gRNHg2NVgDWvPg=w640-h146" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">So - what if I try this again? Drop the tables, recreate the tables, run the insert with zero rows to put a plan in the cache. Put 1024 rows in the source table. Then... I'll explicitly update stats.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both;"><span style="background-color: #eeeeee;">EXEC test__trivial_plan_inserts @insert_no_rows = 1, @x = 1024;</span></div><div class="separator" style="clear: both;"><span style="background-color: #eeeeee;">UPDATE STATISTICS trivial_test_source;</span></div></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><span style="background-color: white;">OK, stats are updated.</span></div><div class="separator" style="clear: both; text-align: left;"><br /></div><br /><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgBaWT5mS7KdGf_9uXCrQNz_QlDyt6C-UOGRrXy_cqvbpbZGov67Tgi4pFtCdxkcA0SZA9GYtzqyh5uZQW3kypPm2W-FscdAfA8lE4UpeksKdZlc8f-IrOq0hOPTVYLDpT4JXdG86zwfYchf_KuTsyc5y2YxLIKW5JBv98wwjFOMqTvoZxLw5G5KhrChw=s1628" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="325" data-original-width="1628" height="128" src="https://blogger.googleusercontent.com/img/a/AVvXsEgBaWT5mS7KdGf_9uXCrQNz_QlDyt6C-UOGRrXy_cqvbpbZGov67Tgi4pFtCdxkcA0SZA9GYtzqyh5uZQW3kypPm2W-FscdAfA8lE4UpeksKdZlc8f-IrOq0hOPTVYLDpT4JXdG86zwfYchf_KuTsyc5y2YxLIKW5JBv98wwjFOMqTvoZxLw5G5KhrChw=w640-h128" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div>So what happens now? Ouch. It doesn't matter. If the stats are stale and there's a matching cached trivial plan - the stats don't get updated. If the stale stats ARE updated before the query is executed - the matching trivial plan isn't invalidated. So that matching cached trivial plan will still be used. Even though I don't want it to be used. I just want SQL Server to take a fresh look at what's going on.</div></div><div><br /></div><div>And that fresh look can solve the problem. Clearing the plan cache with DBCC FREEPROCCACHE (or ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE CACHE in the relevant database) would cause SQL Server to take a fresh look, and decide if the INSERT should get a per-index plan instead of a per-row plan*. Tacking OPTION(RECOMPILE) hint on to the end of that INSERT would also work in a much more targeted manner. Sometimes, in order to prevent a cached trivial plan from forcing a per-row update when we really want a per-index update, gonna hafta encourage SQL Server to take a fresh look in one of those ways.</div></div><div><br /></div><div>*There are a number of SQL Server instance-wide configuration settings changes to which will also clear plan cache, such as maxdop and cost threshold for parallelism. But i don't recommend changing any of them solely to clear plan cache. Microsoft lists the configuration options which clear plan cache on the following BOL page.</div><div><a href="https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-freeproccache-transact-sql?view=sql-server-ver15">DBCC FREEPROCCACHE (Transact-SQL) - SQL Server | Microsoft Docs</a></div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-88278099715065507692021-12-07T12:44:00.003-08:002022-03-18T14:30:18.123-07:00#SQLServer - Database Cache Suppression<p>Third blog post in a quick series about potential trouble at the high AND low side of [\SQLServer:Buffer Manager\Target pages]. So far I've primarily talked about trouble on the low side of [Target pages], due to artificial restriction on the size of the database cache instance-wide, and an uneven expectation of [Free Memory] across the SQLOS memory nodes which can result in some SQLOS memory nodes having almost no database cache. This blog post is another example of the uneven demand for [Free Memory] across SQLOS memory nodes.</p><p>Here are the first two blog posts, in order, where I started discussing this topic.</p><div style="text-align: left;">#SQLServer Column Store Object Pool -- the Houdini Memory Broker Clerk AND Perfmon [\SQLServer:Buffer Manager\Target pages]<br /><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-column-store-object-pool.html">https://sql-sasquatch.blogspot.com/2021/12/sqlserver-column-store-object-pool.html</a></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><div>#SQLServer Database Cache Memory Magic at SQLOS Node Level -- Chaotic or Even A Little Bit Sinister</div><div><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-memory-magic.html">https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-memory-magic.html</a></div></div><div style="text-align: left;"><br /></div><p>The previous two posts have focused on December 1 on a particular system. That system is unusual in that it has 7 vNUMA nodes. That's a pretty surprising number, and it comes from the vNUMA configuration of that 80 vcpu vm not being aligned with physical resources beneath. That'll get straightened out sometime soon and it'll live the rest of its life as a 4x20 as soon as it does.</p><p>How much of the problem do I expect to go away once that system is a 4x20? A little. But it won't remove the problem entirely.</p><p>Let's look at a different system in this post - a 4x22, 88 vcpu system set up as good as I know how.</p><p>Well... yeah, there's something I don't necessarily like to see. Shortly after 3:15 am the database page read rate <i>increases </i>but database cache size <i>decreases</i>. Sometimes that happens, due to other memory commitments. There's only so much memory and if there's another need, database cache might hafta shrink even if it means more reads and more read waits. But in this case it isn't apparent there is a <i>need</i> for ~256 gb of SQLOS [Free Memory] to be maintained for over an hour. It looks like maybe something was anticipated, but never happened?</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiJbjmoFq-BAst8lCxum1S2WzYkgBvFziK3x3Zp-s-UC0cTbxm0bsjnWe8IrevCnZ4LN6zaT0P559P3tz9eUDDUnE3XPs_qEFXcPEAhqux6TyDPrJup8sCEr3ypiBFuh9j3_bnR3RPfO3qE3Iguaeqvl1HpqA-41nSqBzUkuAAdHh5lhPpfCrtE_miqRg=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="179" src="https://blogger.googleusercontent.com/img/a/AVvXsEiJbjmoFq-BAst8lCxum1S2WzYkgBvFziK3x3Zp-s-UC0cTbxm0bsjnWe8IrevCnZ4LN6zaT0P559P3tz9eUDDUnE3XPs_qEFXcPEAhqux6TyDPrJup8sCEr3ypiBFuh9j3_bnR3RPfO3qE3Iguaeqvl1HpqA-41nSqBzUkuAAdHh5lhPpfCrtE_miqRg=w640-h179" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Sure enough - as in the example we've been looking at previously, there's suddenly a huge swing in [Target pages], and it predicts the change in [Free Memory] retention.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgkKmeWnqpU31rMBeX-1u7Bajb637zdceHtMzv9IMjC_tbIrbqhsU10Zr1wK0vFl1_7UAOYbhApuocI_EHvpj7slWqAm_kLGvNQHBgkmJy87HL7UlYui94GVMuPfmnwKrDZaeKafC6UxjkTczaPzVrZG-6lVHAs1h7wOyRqJFfMolV5_UEuvymtKftR8w=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="1302" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEgkKmeWnqpU31rMBeX-1u7Bajb637zdceHtMzv9IMjC_tbIrbqhsU10Zr1wK0vFl1_7UAOYbhApuocI_EHvpj7slWqAm_kLGvNQHBgkmJy87HL7UlYui94GVMuPfmnwKrDZaeKafC6UxjkTczaPzVrZG-6lVHAs1h7wOyRqJFfMolV5_UEuvymtKftR8w=w640-h180" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Adjust the ratio of Y-axes to 8:1 to account for the left axis measured in KB, and the right axis measured in 8kb pages...</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Now [Target pages] is pretty nicely redictive of [Database Cache Memory (KB)]. Until nearly 4:45 am, anyway, when [Target pages] goes back to the stratosphere. </div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjCJPQ_tWp7KjJVJAHTbAlxWyyATXkbvZ9ltaVHF8azdbJHbo6aYHp7Qv8TqE38l727IyUbR7LUEl7SZVYxj0ZE_7eZHLQUnbQv0wMOQdcolHc65eAqk9xrWmh88S5_mOQPY4kYeyfhB34vAFdOljeesEl7K8xLo9vpFLkBH06AZ9WadaS15vc6jF6wcg=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="1302" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEjCJPQ_tWp7KjJVJAHTbAlxWyyATXkbvZ9ltaVHF8azdbJHbo6aYHp7Qv8TqE38l727IyUbR7LUEl7SZVYxj0ZE_7eZHLQUnbQv0wMOQdcolHc65eAqk9xrWmh88S5_mOQPY4kYeyfhB34vAFdOljeesEl7K8xLo9vpFLkBH06AZ9WadaS15vc6jF6wcg=w640-h180" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">So for well over an hour, on this SQL Server 2019 instance on a nicely laid out 4x22, 88 vcpus vm SQLOS maintained over 256 gb of [Free Memory]. While also under considerable database page read load. That very likely lead to much higher page re-reads than would have been necessary otherwise. Other than that - how fairly distributed among the SQLOS memory nodes was production and maintenance of [Free Memory]? Ouch. The intensity of page freeing on individual SQLOS nodes is just as intense on this 4 node system as it was on the 7 node system. Individual nodes still get down to almost no database cache. But conditions seem to change faster - things stay really bad for less time than on the 7 node system.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjHT27GUd9Qw2ACUnRFeEBE_DlQN8Bc7AEf66kOwhQ7vjNx-FU9GU3IF8J6pOHoly0W5-ONUAcMpUDCGwcvveyoFl4_qBSyxEfR9HDr1uWmpnOqKdH5kHWx4x8rDYJgKIquyGPhJva0nA2XEl3eK0-iqnQxcOlx4DBP229B6S29tI89szB_VF3JxB5xPw=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="178" src="https://blogger.googleusercontent.com/img/a/AVvXsEjHT27GUd9Qw2ACUnRFeEBE_DlQN8Bc7AEf66kOwhQ7vjNx-FU9GU3IF8J6pOHoly0W5-ONUAcMpUDCGwcvveyoFl4_qBSyxEfR9HDr1uWmpnOqKdH5kHWx4x8rDYJgKIquyGPhJva0nA2XEl3eK0-iqnQxcOlx4DBP229B6S29tI89szB_VF3JxB5xPw=w640-h178" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhgoOtSrGGXd6SjyCfPo1i4ASq8TlwAhBkkQ9Fjy-SlxhQjdv4ORw85O0BenK0cb2zXjeDuf5wactMsrl3xlsVSOIxRhAwDvGW_mJFDHKmyZuItrico6yLr9M5GFBOqcW91uVICwwWjJb2f8XND8nUA7Aj-2K-lBwWJDVCEkpk3SG6u6f2IWtsoMOhG6w=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="1302" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEhgoOtSrGGXd6SjyCfPo1i4ASq8TlwAhBkkQ9Fjy-SlxhQjdv4ORw85O0BenK0cb2zXjeDuf5wactMsrl3xlsVSOIxRhAwDvGW_mJFDHKmyZuItrico6yLr9M5GFBOqcW91uVICwwWjJb2f8XND8nUA7Aj-2K-lBwWJDVCEkpk3SG6u6f2IWtsoMOhG6w=w640-h180" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj1XKRyVHrhvbZJClWWMdO5YNHWGsuAuHQRQ-Ge9Y818xKLtUEnK5MF0Eaoko_T9Glh8rhP9PZtH88pOGw91eDx_880MRFmFKxZpuqJNetKga2ED78367ovRBYYODNOYjVtM2kspYnCDtxV2LnYkbV_pc8agRwRF_0X5icJB9J7qNPVykI2n2AFSkQmeg=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="178" src="https://blogger.googleusercontent.com/img/a/AVvXsEj1XKRyVHrhvbZJClWWMdO5YNHWGsuAuHQRQ-Ge9Y818xKLtUEnK5MF0Eaoko_T9Glh8rhP9PZtH88pOGw91eDx_880MRFmFKxZpuqJNetKga2ED78367ovRBYYODNOYjVtM2kspYnCDtxV2LnYkbV_pc8agRwRF_0X5icJB9J7qNPVykI2n2AFSkQmeg=w640-h178" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiuOo7zEK0kXV0OrvPb-O3WwkJJegonylqVI_Y1Rnm5rgGFuXVRNP747zFjcjv_TZGhJJgBqp2rGJGhMHYRMbqpveJa33FVqxE8QWNoEcnHR18aiUGoHP_8JKlEGCYnANB7iknG3lNHKm9DtPaP9zuVWkTg8jKvKd9YA6hIKkDkZFFbVje55Au2m8t4iA=s1302" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="178" src="https://blogger.googleusercontent.com/img/a/AVvXsEiuOo7zEK0kXV0OrvPb-O3WwkJJegonylqVI_Y1Rnm5rgGFuXVRNP747zFjcjv_TZGhJJgBqp2rGJGhMHYRMbqpveJa33FVqxE8QWNoEcnHR18aiUGoHP_8JKlEGCYnANB7iknG3lNHKm9DtPaP9zuVWkTg8jKvKd9YA6hIKkDkZFFbVje55Au2m8t4iA=w640-h178" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div>I haven't looked at a 2 node system yet. Or an 8 node sysem. I definitely predict the 8 node system will look... scary. I might be able to round up a 2 node system before an 8 node system to evaluate.<br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><br /><p></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-45105337748531929832021-12-07T09:08:00.002-08:002021-12-07T14:11:23.953-08:00#SQLServer Database Cache Memory Magic at SQLOS Node Level -- Chaotic or Even A Little Bit Sinister<p> This blog post continues to look at a topic I blogged about yesterday.</p><p>Yesterday's first post:</p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-column-store-object-pool.html">sql.sasquatch: #SQLServer Column Store Object Pool -- the Houdini Memory Broker Clerk AND Perfmon [\SQLServer:Buffer Manager\Target pages] (sql-sasquatch.blogspot.com)</a></p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-column-store-object-pool.html">https://sql-sasquatch.blogspot.com/2021/12/sqlserver-column-store-object-pool.html</a></p><p>And here's a post I finished later today, following this one.</p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-suppression.html">sql.sasquatch: #SQLServer - Database Cache Suppression (sql-sasquatch.blogspot.com)</a></p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-suppression.html">https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-suppression.html</a></p><p><span style="color: #800180;">Hey!! What's up with the lavender boxes in all the graphs in this post!? I'm using the lavender boxes for visual alignment from graph to graph. Not really necessary in the system-wide graphs since the changes in SQLOS free memory and database cache are so drastic; but they help me to align visually when i look at individual SQLOS nodes where the pattern gets more complicated.</span></p><p>To briefly recap: we looked at a system where SQLOS [Database Cache Memory] and [Free Memory] experienced dramatic, aggressive changes. Those changes were not related to database page read rates, evn though that is the primary inflow to database cache.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUu43UxOtNNlfLlyOycTJMatUKzebVUsKrC48ZctxQRipBt15sTVCRv8fR8Qhm6c_nuSaSI8OBxNw9oD-8rcaY_ezIQJ9Pi3OHJR4aVf4klr5tLhZruRP7ed_kkKNx7TRawYjd7GnBOu7y/s2862/Picture5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUu43UxOtNNlfLlyOycTJMatUKzebVUsKrC48ZctxQRipBt15sTVCRv8fR8Qhm6c_nuSaSI8OBxNw9oD-8rcaY_ezIQJ9Pi3OHJR4aVf4klr5tLhZruRP7ed_kkKNx7TRawYjd7GnBOu7y/w640-h179/Picture5.png" width="640" /></a></div><br /><p>We saw that aggressive changes to [Target pages] predicted the aggressive changes to SQLOS database cache and free memory. The maximum value for [Target pages] in this example is not attainable on the system; it is much larger than the SQL Server [Max Server Memory] setting.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijunzUyeboiTb_1Qmcqy9Hg2VX5Q9M7k3mM3Q4o-UgbrI8f_LL24icHdU1jBJnN_wxhpTbWVSeTKith5Z9hlcPXxO_SMxv8p0-HicZ0F9AqJcRj-5Z2eklKUX2bHZP3Dgxr7uSd6-h1YJV/s2862/Picture7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijunzUyeboiTb_1Qmcqy9Hg2VX5Q9M7k3mM3Q4o-UgbrI8f_LL24icHdU1jBJnN_wxhpTbWVSeTKith5Z9hlcPXxO_SMxv8p0-HicZ0F9AqJcRj-5Z2eklKUX2bHZP3Dgxr7uSd6-h1YJV/w640-h178/Picture7.png" width="640" /></a></div><div><br /></div>The lower values for [Target pages], however, are very predictive of the [Database Cache Memory (KB)] values, once the left and right Y-axes are aligned in an 8:1 ratio.<div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh6ra7TS4ycfStKmo5B7j1X4jcBl5DkG4y_HvhnJboxbwjfUqPAOs5NV8lO3_UoJLshVw4Jo1yNIidDlIib98gdl4n5t-GalAy166Meq1eE4k3Jvj_QYQle1_HVTZrYs1IYjdj89iaSlOZ/s2862/Picture8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh6ra7TS4ycfStKmo5B7j1X4jcBl5DkG4y_HvhnJboxbwjfUqPAOs5NV8lO3_UoJLshVw4Jo1yNIidDlIib98gdl4n5t-GalAy166Meq1eE4k3Jvj_QYQle1_HVTZrYs1IYjdj89iaSlOZ/w640-h178/Picture8.png" width="640" /></a></div><br /><div><br /></div><div>Currently the only known drivers for these drastic changes in [Target pages] and the consequential changes in database cache and free memory are the entrance and exit of the column store object pool cache. If I find more, I'll update these posts.</div><div><br /></div><div>Today I want to look at the effect this has at the SQLOS memory node level. By default, SQL Server SQLOS creates a memory node at startup for each detected vNUMA node on the system. Worker threads on the schedulers associated with the memory node tend the SQLOS memory on that node. The patterns above and in yesterday's post look very orderly, even if not optimal. Today we'll see if that holds true at the SQLOS node level as well. This particular system currently has 7 vNUMA nodes. (sometimes vNUMA on monster VMs requires a little extra care to get into expected configuration. Hopefully soon this will be a 4x20 eighty vcpu VM with 4 vNUMA nodes instead of its current non-standard configuration.)</div><div><br /></div><div>Here's memory graphs for each of the 7 current SQLOS nodes. After these 7, I'll single out two to look at specifically.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihKsBD-rc9keNS1KlseBmUNmroLfqQFoTCHNCsWzYXBtGBc03HFuHs9QD_oCnqFUiNV9_Qh6bF3yhwFaZxdxDjK9M2y8b_9xb1VPFxhpHuEo71gyYsAOeXlpeABAlhk8VASq3nYM4ZXJsU/s2862/Picture9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihKsBD-rc9keNS1KlseBmUNmroLfqQFoTCHNCsWzYXBtGBc03HFuHs9QD_oCnqFUiNV9_Qh6bF3yhwFaZxdxDjK9M2y8b_9xb1VPFxhpHuEo71gyYsAOeXlpeABAlhk8VASq3nYM4ZXJsU/w640-h178/Picture9.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnKzV8xpEWCyuzF1U0MFywQ8abQczU8fyyuhcP9NeRYupIOC3Y5Osdn9IMSrp54a5PQy3QFMXyApEpnUmhW-BQvFKwGF0CxYb_k-V22ivgSMnsvUiBerD2Uee0RKZRMchmihQxT3hH_4m_/s2862/Picture10.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnKzV8xpEWCyuzF1U0MFywQ8abQczU8fyyuhcP9NeRYupIOC3Y5Osdn9IMSrp54a5PQy3QFMXyApEpnUmhW-BQvFKwGF0CxYb_k-V22ivgSMnsvUiBerD2Uee0RKZRMchmihQxT3hH_4m_/w640-h178/Picture10.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwGDOC7G7ko_GG710uLsYwNa2B-YI0TlOdyvFSNDmh_OA0p4aHdoyTS_qILqkYspcp5ztYa_Hc1q1rDaB2MlD9NHvF9gbXffoEvDKHsxPo1wChrE5Xhujk9KOuQ__6LXh1Ps208ujyuuLe/s2862/Picture11.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwGDOC7G7ko_GG710uLsYwNa2B-YI0TlOdyvFSNDmh_OA0p4aHdoyTS_qILqkYspcp5ztYa_Hc1q1rDaB2MlD9NHvF9gbXffoEvDKHsxPo1wChrE5Xhujk9KOuQ__6LXh1Ps208ujyuuLe/w640-h178/Picture11.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2xJ6ofn9Z72w9PzFmjgiEwdKrgGVZGwxrHnN1Qk6E29awARi01epBQkMBq0m4fwPI0q3urVgKnIw38MC5SAFX9-WO5icOeEtQOmYorLazjTZ5yb_HnnVUL1VNFMEYi3XKJIXfgDtoNlN/s2862/Picture12.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2xJ6ofn9Z72w9PzFmjgiEwdKrgGVZGwxrHnN1Qk6E29awARi01epBQkMBq0m4fwPI0q3urVgKnIw38MC5SAFX9-WO5icOeEtQOmYorLazjTZ5yb_HnnVUL1VNFMEYi3XKJIXfgDtoNlN/w640-h178/Picture12.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXEbO_F13kLeIBHcDReEXcIEp9YWFrQqPRlO0L13o7wG0pVBBO4lj3BGJiJlqlOFDPB7EZJ_3Xvo6xRLmv-mfKfG7X7QioyfNAnS-FnKMpvYLGzkH-vxKwITo9kYmrbet5Uv2rGHrK_9k-/s2862/Picture13.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXEbO_F13kLeIBHcDReEXcIEp9YWFrQqPRlO0L13o7wG0pVBBO4lj3BGJiJlqlOFDPB7EZJ_3Xvo6xRLmv-mfKfG7X7QioyfNAnS-FnKMpvYLGzkH-vxKwITo9kYmrbet5Uv2rGHrK_9k-/w640-h178/Picture13.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie2IGL2cBZTbHo8OqVhK0l2anNS1E15UOW3_II5ZcVzQgO2-oK4DWasLKr87KWLQaQHGHfE42Max7pUsbJ2x3VZ2VJqS0xBmyDNSiXoU3JzF3xiy_mf4adpbH47QabX-Q4q_QxJ2BXIlRh/s2862/Picture14.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie2IGL2cBZTbHo8OqVhK0l2anNS1E15UOW3_II5ZcVzQgO2-oK4DWasLKr87KWLQaQHGHfE42Max7pUsbJ2x3VZ2VJqS0xBmyDNSiXoU3JzF3xiy_mf4adpbH47QabX-Q4q_QxJ2BXIlRh/w640-h178/Picture14.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2F-3UJtuq3AEgfhh2B774tWtjoul1DBb9MmQCtVut0FA7MF94fyjXahI3KXUcL_-agXHOXlMNP_4gsFy5sQ4JBoCLymFcihbs-3WsY4_LcF-n-A2laMY48BxR2azmC6zyAVU8S1pZZFjW/s2862/Picture15.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2F-3UJtuq3AEgfhh2B774tWtjoul1DBb9MmQCtVut0FA7MF94fyjXahI3KXUcL_-agXHOXlMNP_4gsFy5sQ4JBoCLymFcihbs-3WsY4_LcF-n-A2laMY48BxR2azmC6zyAVU8S1pZZFjW/w640-h178/Picture15.png" width="640" /></a></div><br /><div><br /></div><div>Wow. Well, things definitely don't look as orderly at the SQLOS memory node level as the do at the system-wide level. Let's focus on two of the nodes - 003 and 006. Now, unless someone has done some fancy rigamarole with affinitization, one won't be able to select a SQLOS scheduler node or memory node for a session's connection to be associated with. Similarly, without fancy affinity won't be able to reliably predict which scheduler node(s) or memory node(s) will be home for parallel worker activity in the case of parallel queries (the nodes for parallel workers can be different than the scheduler node/memory node for the execution context ID 0 worker thread).</div><div><br /></div><div>Imagine a DOP 1 query that handles a large table scan. Because the high estimate of rows is past the tipping point(and return of a column absent from any index), table scan is always chosen rather than index access. The table being scanned is 20 GB in size - but assume no part of the table is in cache at the start of the hypothetical activity. A session runs that query 6 times in succession, with different filter values (but each time its a full table scan).</div><div><br /></div><div>This happens once between 7:30 am and 8:30 am, and once between 10:00 am and 11:00 am.</div><div><br /></div><div>What would you expect to happen if both of those sessions performed their DOP 1 queries on node 003 (the top graph immediately below)? What would be different if instead those sessions performed their queries on node 006 (the lower of the graphs immediately below)?</div><div><br /></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2xJ6ofn9Z72w9PzFmjgiEwdKrgGVZGwxrHnN1Qk6E29awARi01epBQkMBq0m4fwPI0q3urVgKnIw38MC5SAFX9-WO5icOeEtQOmYorLazjTZ5yb_HnnVUL1VNFMEYi3XKJIXfgDtoNlN/s2862/Picture12.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht2xJ6ofn9Z72w9PzFmjgiEwdKrgGVZGwxrHnN1Qk6E29awARi01epBQkMBq0m4fwPI0q3urVgKnIw38MC5SAFX9-WO5icOeEtQOmYorLazjTZ5yb_HnnVUL1VNFMEYi3XKJIXfgDtoNlN/w640-h178/Picture12.png" width="640" /></a></div><div><br /></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2F-3UJtuq3AEgfhh2B774tWtjoul1DBb9MmQCtVut0FA7MF94fyjXahI3KXUcL_-agXHOXlMNP_4gsFy5sQ4JBoCLymFcihbs-3WsY4_LcF-n-A2laMY48BxR2azmC6zyAVU8S1pZZFjW/s2862/Picture15.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2F-3UJtuq3AEgfhh2B774tWtjoul1DBb9MmQCtVut0FA7MF94fyjXahI3KXUcL_-agXHOXlMNP_4gsFy5sQ4JBoCLymFcihbs-3WsY4_LcF-n-A2laMY48BxR2azmC6zyAVU8S1pZZFjW/w640-h178/Picture15.png" width="640" /></a><br /><p><br /></p><p>OK, OK. I've shown the <i>possibility </i>of performance-by-lottery in this case. The hypothetical activity on node 003 might be able to cache the entire 20 gb table on the first scan, with second through sixth queries getting 100% cache hit. The hypothetical ativity on node 006 has <i>no</i> chance of doing so. Each scan of that 20 gb table will have to read the full 20 gb table - and absorb any associated pageio_latch waits.</p><p>But is there any indication something like that actually happened? Yes, actually.</p><p>First of all, CPU utilization across the whole VM was cookin' pretty good.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSNqsTFg_8TInw3CHvB4yMPzEGom9a0HjFwvU4IERTJwElmN0m2yr69Q_1RiXGvAS0yV6XKdHYtfFeAhl5pjyKJVu615p3MW-3nnMtMRsFj3foRSqstMjFWuIyT7959lY5NvrMfyu4uAOI/s2862/Picture16.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="801" data-original-width="2862" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSNqsTFg_8TInw3CHvB4yMPzEGom9a0HjFwvU4IERTJwElmN0m2yr69Q_1RiXGvAS0yV6XKdHYtfFeAhl5pjyKJVu615p3MW-3nnMtMRsFj3foRSqstMjFWuIyT7959lY5NvrMfyu4uAOI/w640-h181/Picture16.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Now let's look at the individual SQLOS memory nodes, with CPU utilization for the associated vNUMA nodes.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">vNUMA node 3 has very high CPU utilization throughout.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikmbWVYQdpcm6-nbPyDl3uHFadyEDfN0r5sj6pCzcSQmyWN7FXTb9qTI4-ll_63bjnPKFts_i8_bk_QmUJRLK_ntBD7blMxMzmb_qjeUJ5w2Bx7QTAF7AbnGKMDU2TEaNlJKqqW-2XWOft/s2862/Picture17.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikmbWVYQdpcm6-nbPyDl3uHFadyEDfN0r5sj6pCzcSQmyWN7FXTb9qTI4-ll_63bjnPKFts_i8_bk_QmUJRLK_ntBD7blMxMzmb_qjeUJ5w2Bx7QTAF7AbnGKMDU2TEaNlJKqqW-2XWOft/w640-h178/Picture17.png" width="640" /></a></div><div><br /></div>vNUMA node 6 has spikier CPU, and it rarely is as high as on vNUMA node 3. That's not entirely surprising to me. The query activity responsible for CPU activity on vNUMA node 6 is experiencing many more pageio_latch waits than on vNUMA node 3 - because there is almost no database cache. From 10:00 am - 11:00 am there is another indication of query activity on memory node 006 - other than the CPU activity on vNUMA node 6. The continued growth of stolen memory on SQLOS memory node 006 is most likely due to growth of memory stolen against query workspace memory grants, for sort/hash activity and the like.<br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIXK6MN2_gc2uMR_QlrTFgu3QP1FS6ZXt4rMUMA-WRzhajJhzZbgE2VMQRIWQo5leiykZeCHHs57QMPFCXnOJlQsqOxsi1MtuwBf6vdh1XPXR0e6LsJyACaDg9NqsVSE-GixOse8bLNwki/s2862/Picture18.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="2862" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIXK6MN2_gc2uMR_QlrTFgu3QP1FS6ZXt4rMUMA-WRzhajJhzZbgE2VMQRIWQo5leiykZeCHHs57QMPFCXnOJlQsqOxsi1MtuwBf6vdh1XPXR0e6LsJyACaDg9NqsVSE-GixOse8bLNwki/w640-h178/Picture18.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">OK. So now I've shown that the amount of database cache and free memory on a system can change drastically due to the influence of [Target pages]. [Target pages] itself can dramatically change due to entrance/exit of the column store object pool memory broker clerk. And even if these patterns look somewhat orderly at the system level, on large NUMA systems they may look chaotic or downright sinister.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><br /><p><br /></p><p><br /></p></div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-48964299217555978142021-12-06T10:32:00.009-08:002021-12-07T14:09:44.623-08:00#SQLServer Column Store Object Pool -- the Houdini Memory Broker Clerk AND Perfmon [\SQLServer:Buffer Manager\Target pages]<p>***** Update 2021 December 7 *****</p><p>In the DIY section of this post I added an explanation about the up-to-five second delay between creation of the column store object pool memory broker clerk, and the update to [Target pages]. I also added some modified code with built in WAITFOR '00:00:06' between each operation and checking the memory counters :-) That always gives the desired results... but wow waiting ~36 seconds for it to complete seems like it takes <i>forever.</i></p><p><i>Happy holidays, y'all.</i></p><p><i>***** </i>End Update December 7 *****</p><p><br /></p><p>Howdy!</p><p>I use perfmon a lot for SQL Server stuff :-)</p><p>Have you ever looked at how the Microsoft Docs describe [\SQLServer:Buffer Manager\Target pages]?</p><p><a href="https://docs.microsoft.com/en-us/sql/relational-databases/performance-monitor/sql-server-buffer-manager-object?view=sql-server-ver15">SQL Server, Buffer Manager object - SQL Server | Microsoft Docs</a></p><p>There's not much there. As of 2021 December 6:</p><table class="table" style="background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: inherit; color: #171717; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 0.875rem; outline-color: inherit; table-layout: auto; width: 708.889px;"><tbody style="box-sizing: inherit; outline-color: inherit;"><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-bottom: 0px solid; border-left: 0px solid; border-right: 0px solid; border-top-style: solid; box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.75rem 1rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;">Target pages</span></td><td style="border-bottom: 0px solid; border-left: 0px solid; border-right: 0px solid; border-top-style: solid; box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.75rem 1rem; vertical-align: top;">Ideal number of pages in the buffer pool.</td></tr></tbody></table><table class="table" style="background-color: white; border-collapse: collapse; border-spacing: 0px; box-sizing: inherit; color: #171717; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 0.875rem; outline-color: inherit; table-layout: auto; width: 708.889px;"><tbody style="box-sizing: inherit; outline-color: inherit;"><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-bottom: 0px solid; border-left: 0px solid; border-right: 0px solid; border-top-style: solid; box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.75rem 1rem; vertical-align: top;"><br /></td><td style="border-bottom: 0px solid; border-left: 0px solid; border-right: 0px solid; border-top-style: solid; box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.75rem 1rem; vertical-align: top;"><br /></td></tr></tbody></table>That's not much to go on. And I'm a very inquisitive individual.<div><br /></div><div><p>So much so that I wrote 3 posts (so far) about this issue.</p><p>The second post:</p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-memory-magic.html">sql.sasquatch: #SQLServer Database Cache Memory Magic at SQLOS Node Level -- Chaotic or Even A Little Bit Sinister (sql-sasquatch.blogspot.com)</a></p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-memory-magic.html">https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-memory-magic.html</a></p><p>The third post:</p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-suppression.html">sql.sasquatch: #SQLServer - Database Cache Suppression (sql-sasquatch.blogspot.com)</a></p><p><a href="https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-suppression.html">https://sql-sasquatch.blogspot.com/2021/12/sqlserver-database-cache-suppression.html</a></p><div><br /></div><div>When I saw the memory graph below for a SQL Server 2017 system, my interest was piqued.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih8hqDAlOm7mHesyMN_QpyH9q5JQGKo0rI6QR-TuZOctfall_qLqdYx5vtOCow9OItGcmLUNQuWLqbIhbk9vrryEfOE3L0X-CuR1_35irfvNJayNSViLve92MNYOv4hRYNyGEM98zkN4bj/s1302/Picture1.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih8hqDAlOm7mHesyMN_QpyH9q5JQGKo0rI6QR-TuZOctfall_qLqdYx5vtOCow9OItGcmLUNQuWLqbIhbk9vrryEfOE3L0X-CuR1_35irfvNJayNSViLve92MNYOv4hRYNyGEM98zkN4bj/w640-h179/Picture1.png" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>Lots of database pages were being read into cache as seen in the graph below, and there isn't any seeming correlation between the page read rate and the size of database cache. Hmmm.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJt46acGGhzxBdU95efOFxpPJTBpUZ4-7s9KdI_w8r1Sch95IOtPjls5KdPWzr3FGnhyPdCEyAsGxDhMBTOPA9TQHor7nW_TbaukHPUqqG2JXkQugG2XAShlLGdeBAo4S2siEjVQDcG9VW/s1302/Picture2.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="1302" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJt46acGGhzxBdU95efOFxpPJTBpUZ4-7s9KdI_w8r1Sch95IOtPjls5KdPWzr3FGnhyPdCEyAsGxDhMBTOPA9TQHor7nW_TbaukHPUqqG2JXkQugG2XAShlLGdeBAo4S2siEjVQDcG9VW/w640-h180/Picture2.png" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>Database page reads are usually the major cause of inflow into database cache, and as such are a primary driver (together with database cache size) of the calculated [\SQLServer:Buffer Manager\Page life expectancy] counter. Considering the graphs immediately above and below, as one would expect, at a given page read rate PLE is higher when database cache is larger.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDMwBbokwnR_8u-272VFCJ9O8sNWKEsGaFVRYTFruKADAsNrEE5H8vT7x5Q8rRkO2Femrmfu117a3dhAPKyqDVqXa8GYSEjKTAKgg0GUJd9ogH8ReZeDpSJx6agMQU8knVfe7O__weRcHa/s1302/Picture3.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDMwBbokwnR_8u-272VFCJ9O8sNWKEsGaFVRYTFruKADAsNrEE5H8vT7x5Q8rRkO2Femrmfu117a3dhAPKyqDVqXa8GYSEjKTAKgg0GUJd9ogH8ReZeDpSJx6agMQU8knVfe7O__weRcHa/w640-h178/Picture3.png" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>Given the database page read rate and PLE as seen above, why would SQL Server choose to amass and maintain for long periods of time ~30% of [Total Server Memory] as [Free Memory]? Especially since it has to constrain [Database Cache Memory] to about 50% of [Total Server Memory] to do that?</div><div><br /></div><div>Sure enough, our friend [\SQLServer:Buffer Manager\Target pages] seems to be involved. The maximum value of the measure in orange below, against the Y-axis on the right, is 2456027136 pages. With 8 kb pages, that works out to 18738 gb. That's an awful lot since [Max Server Memory] is pretty close to 1024 gb. This system is a vm with 1200 gb vRAM.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQuTa858cJzdltvZYyd5VDrlbl9ia7Ad-5ZuHPups3EmqlPblcXEMFKy4XNsL5UuUldECC53WYVOA8UDjJTAYQVm59NyiopX7I5i0U-E8dPTwknMv_gPcD_B4RazuFIaqXR69K1b_ta4C5/s1302/Picture5.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1302" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQuTa858cJzdltvZYyd5VDrlbl9ia7Ad-5ZuHPups3EmqlPblcXEMFKy4XNsL5UuUldECC53WYVOA8UDjJTAYQVm59NyiopX7I5i0U-E8dPTwknMv_gPcD_B4RazuFIaqXR69K1b_ta4C5/w640-h178/Picture5.png" width="640" /></a></div><br /><div><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>What if I change the ratio between the left Y-axis and the right Y-axis? The unit of measure on the left is kb, and on the right it's 8 kb pages. So what happens if I use an 8:1 ratio for the measures? Same maximum of 1280 million for the left Y-axis. But instead of 3000 million as a maximum on the right Y-axis, a maximum of 160 million.</div><div><br /></div><div>Yeah, that's better! Suddenly [\SQLServer:Buffer Manager\Target pages] at the low end has a much more intuitive relatonship with the database cache size. Now [Target pages] is better predictive of database cache size, when it's NOT equal to 2456027136 pages. :-)</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEYJKO_AcnXOA_4CIqed1LwR6F00bS-1kEuf1OcoikAlujY3jqZQ2j4vxZrSqFBxKZEKQ_-sGXTsq8Af_zfA9kxF2NRGuFEX4EHPb8rJyUzPlh3PlbJu9UErWDMOmGegl9JJKTjQIzYeo5/s1302/Picture6.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="1302" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEYJKO_AcnXOA_4CIqed1LwR6F00bS-1kEuf1OcoikAlujY3jqZQ2j4vxZrSqFBxKZEKQ_-sGXTsq8Af_zfA9kxF2NRGuFEX4EHPb8rJyUzPlh3PlbJu9UErWDMOmGegl9JJKTjQIzYeo5/w640-h180/Picture6.png" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>So, what event or condition can lead to such a drastic change in [\SQLServer:Buffer Manager\Target pages], with such significant consequences for database cache size? For now, I only know of one event that changes [Target pages] from a seemingly too-high-to-be-achieved number, to an achievable number which *may* result in a database cache being artificially constrained in size on a given system: creation and presence of the column store object pool memory broker clerk.</div><div><br /></div><div>The buffer pool memory broker clerk is ever-present in a SQL Server instance. But the column store object pool memory broker clerk is a Houdini-kinda thing. It doesn't get created until buffer pages for a columnstore segment are read and need to be serialized into the object pool. Writing to or reading from delta stores isn't sufficient to create or sustain the column store object pool. Using an index reorganize on delta store contents only to compress a new columnstore row group won't do it. Bulk insert of over 102400 rows with sufficient memory grant to immediately compress into a new rowgroup - nope, that won't create or sustain the column store object pool memory broker clerk, either. Have to read buffer pool pages for a columnstore segment. And once there are no more buffer pool pages in the buffer pool... poof! That Houdini-like column store object pool memory broker disappears! And [\SQLServer:Buffer Manager\Target pages] returns from a maybe-reasonable, maybe-too-restricted value to an unachievable-on-this-system value.</div><div><br /></div><div>Maybe there's another event or condition that can cause this Jeckyll-Hyde transformation. I don't know of one yet, but I'll keep searching, and asking.</div><div><br /></div><div>Maybe you'd like to try this yourself? You can, on SQL Server 2017 or 2019. (Pretty sure this'll have similar results on SQL Server 2016 and 2022, but I've not verified that.)</div><div><br /></div><div>Here are some screenshots, and all the code is down at the bottom of the post.</div><div><br /></div><div>Don't do it in a production instance, please :-) Make sure there isn't an existing column store object pool when you try this, and that potential columnstore work from others while you do this doesn't affect your results. An instance where you are the only user, immediatelu after a clean shutdown and restart should work well. If you're the only user, checkpoint and dropcleanbuffers or freesystemcache for columnstore object pool should get you to a clean memory slate to start.</div><div><br /></div><div>Here's the T-SQL query I use to get a quick lookie-loo at memory right after I start up the SQL Server instance. Notice there is no column store object pool memory broker clerk. Not just zero in size - the row doesn't exist in the DMV - hence my LOJ to the DMV on 1=1 just to report the NULL size. Look at the comparison between [Max Server Memory] in kb and [Target pages] in kb! This is my laptop, so MSM is set to 4 gb. That [Target pages] value! 258998272 kb works out to 247 gb. Not gonna get that on my laptop :-)</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTgtryTmzUjpuIRZ85m4pIXa5-li6QgAMx59AxtdGgolbtZjSsrObC7EdAZ1W2viNGKXCRh3loOMZJtd_0n5PHXJJFigzUbO6wsOx65ktV4RDBLaJV6xMSqUCeKR9Xl9wxbmgQQl_qTEA/s888/Picture7.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="409" data-original-width="888" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRTgtryTmzUjpuIRZ85m4pIXa5-li6QgAMx59AxtdGgolbtZjSsrObC7EdAZ1W2viNGKXCRh3loOMZJtd_0n5PHXJJFigzUbO6wsOx65ktV4RDBLaJV6xMSqUCeKR9Xl9wxbmgQQl_qTEA/w640-h294/Picture7.png" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div> </div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>After verifying that column store object pool didn't exist, I used the code below to get one.</div><div><br /></div><div>I actually checked after each step: creating the table, inserting 1000 row into delta store, reading 1000 rows from delta store, reorg to compress the delta store into a rowgroup. Each of those steps showed I still didn't have a column store object pool in the instance. And [Target pages] remained at an unattainable number.</div><div><br /></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5h8YEukgGBPtyvQPqrOSx9Q2r7y9xJnxV7MK-FjWzH44bp_g4_rYPErJFouRO59_77h0NIlJPrhOaCMGpryv2EIIs-S5eF8A2wHc5zgbXr7i-9-rcjplA3kT3JXUyNPTEanD4FxJtRE2/s1011/Picture8.png" style="clear: left; display: inline; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="859" data-original-width="1011" height="544" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp5h8YEukgGBPtyvQPqrOSx9Q2r7y9xJnxV7MK-FjWzH44bp_g4_rYPErJFouRO59_77h0NIlJPrhOaCMGpryv2EIIs-S5eF8A2wHc5zgbXr7i-9-rcjplA3kT3JXUyNPTEanD4FxJtRE2/w640-h544/Picture8.png" width="640" /></a></div><div><br /></div><div>Finally, I read the table contents from the columnstore compressed rowgroup. And that created the memory broker clerk. And brought [Target pages] down from the stratosphere, to a number that could actually be achieved on this system (and thus could serve as a reasonable target). The target of 3695216 kb is just a hair over 88% of the max server memory value of 4 gb or 4194304 kb.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4jPyyx6a0wfo4la2Guamnk8oJOjF3vX5hMmAxZGjilUWTQ2b6mZ5_O9qH4Qc17iAEG5z0HV-OnUV_hY7KhIlC4GtcZPqy6VnxUThvKtAMJyXQe8hbwQLSnYCXo-Oqg9FvIWdzCGfI0pS2/s888/Picture9.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="409" data-original-width="888" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4jPyyx6a0wfo4la2Guamnk8oJOjF3vX5hMmAxZGjilUWTQ2b6mZ5_O9qH4Qc17iAEG5z0HV-OnUV_hY7KhIlC4GtcZPqy6VnxUThvKtAMJyXQe8hbwQLSnYCXo-Oqg9FvIWdzCGfI0pS2/w640-h294/Picture9.png" width="640" /></a></div><br /><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>As I mentioned earlier, there may be other events or conditions that can cause this type of shift in [Target pages]. I don't know of any, yet. But I'll update this post when I learn of some.</div><div><br /></div><div>I have some concerns on both sides of that major change in [Target pages], actually. The really high value is great at making the database cache aggressive, and keeping free memory to a minimum in the instance. But - does it make SQL Server reluctant to shrink the database cache when it could in order to bring [Total Server Memory] back down to [Target Server Memory] after SQL Server has "colored outside the lines"? I think it might. Also, while allowing the database cache to remain aggressive in using up nearly all free memory is very good for PLE, the pressure on internal memory use within [Total Server Memory] may be causing unnecessary delays or CPU usage. For example, if there's little-to-no free memory while a sort or hash is executing and memory needs to be stolen against the query's workspace memory grant, it would seem to be better to have some free memory around than to have to scrounge for it.</div><div>On the other hand, restricting database cache for what seems to be a fixed amount of free memory in some cases can lead to inefficient use of memory. I definitely think that was the case in the graphs above, where free memory was over 396 gb at 7:30 am, when the read rate was over 240000 pages/s (1.8 gigabytes/s) and PLE ranged between 4 and 24. A second concern is how evenly distributed memory freeing activity is across SQLOS nodes (this topic deserves at least a full post on its own, if not a series). </div><div><br /></div><div>Anyway... here's the code I used in my little DIY above :-)
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">; <span style="color: blue;">WITH</span>
msm(max_server_memory__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> <span style="color: blue;">CONVERT</span>(INT, value_in_use) * 1024 <span style="color: blue;">FROM</span> sys.configurations
<span style="color: blue;">WHERE</span> name = <span style="color: #a31515;">'max server memory (MB)'</span>)
, tgt(target_pages__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> cntr_value * 8 <span style="color: blue;">FROM</span> sys.dm_os_performance_counters
<span style="color: blue;">WHERE</span> counter_name = <span style="color: #a31515;">'Target Pages'</span>)
, bpool(bpool__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> total_kb <span style="color: blue;">FROM</span> sys.dm_os_memory_broker_clerks
<span style="color: blue;">WHERE</span> clerk_name = <span style="color: #a31515;">'Buffer Pool'</span>)
, cs(csopool__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> total_kb <span style="color: blue;">FROM</span> sys.dm_os_memory_broker_clerks
<span style="color: blue;">WHERE</span> clerk_name = <span style="color: #a31515;">'Column store object pool'</span>)
<span style="color: blue;">SELECT</span> *, vers = @@<span style="color: blue;">version</span>
<span style="color: blue;">FROM</span> msm <span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> tgt <span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> bpool <span style="color: blue;">LEFT</span> <span style="color: blue;">OUTER</span> <span style="color: blue;">JOIN</span> cs <span style="color: blue;">ON</span> 1 = 1;
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> lonely_cci (c1 INT, <span style="color: blue;">INDEX</span> cci__lonely_cci CLUSTERED COLUMNSTORE);
<span style="color: green;">/* no change in [Target Pages], no cso pool broker clerk yet */</span>
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> lonely_cci
<span style="color: blue;">SELECT</span> TOP (1000) ROW_NUMBER() OVER (<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> (<span style="color: blue;">SELECT</span> <span style="color: blue;">NULL</span>))
<span style="color: blue;">FROM</span> master..spt_values;
<span style="color: green;">/* only 1000 rows inserted, so into delta store </span>
<span style="color: green;"> no change in [Target Pages], no cso pool broker clerk yet */</span>
<span style="color: blue;">SELECT</span> cnt = <span style="color: blue;">COUNT</span>(*) <span style="color: blue;">FROM</span> lonely_cci;
<span style="color: green;">/* reading from delta store</span>
<span style="color: green;"> no change in [Target Pages], no cso pool broker clerk yet */</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">INDEX</span> cci__lonely_cci <span style="color: blue;">ON</span> lonely_cci REORGANIZE <span style="color: blue;">WITH</span> (COMPRESS_ALL_ROW_GROUPS = <span style="color: blue;">ON</span>);
<span style="color: green;">/* the reorg compresses the delta store into a columnstore rowgroup</span>
<span style="color: green;"> no change in [Target Pages], no cso pool broker clerk yet */</span>
<span style="color: blue;">SELECT</span> cnt = <span style="color: blue;">COUNT</span>(*) <span style="color: blue;">FROM</span> lonely_cci;
<span style="color: green;">/* reading from the bpool pages associated with the first CCI rowgroup</span>
<span style="color: green;"> initializes the column store object pool memory broker clerk</span>
<span style="color: green;"> and serializes the memory contents of the bpool pages into the pool</span>
<span style="color: green;"> </span>
<span style="color: green;"> now [Target Pages] is a value reflective/directive of bpool size</span>
<span style="color: green;"> and the object pool memory broker clerk shows up in dm_os_memory_broker_clerks */</span>
<span style="color: green;">/* -- any of the following will result in eviction of the rowgroup's bpool pages from bpool</span>
<span style="color: green;"> -- once there are no bpool pages for any columnstore segment in the bpool</span>
<span style="color: green;"> -- [Target Pages] returns to a value much greater </span>
<span style="color: green;"> -- than [Max Server Memory] or [Target Server Memory]</span>
<span style="color: green;"> -- column store object pool memory broker clerk disappears </span>
<span style="color: green;"> -- from dm_os_memory_broker_clerks</span>
<span style="color: green;"> CHECKPOINT; DBCC DROPCLEANBUFFERS WITH no_infomsgs; </span>
<span style="color: green;"> DBCC FREESYSTEMCACHE('Column store object pool') WITH no_infomsgs;</span>
<span style="color: green;"> TRUNCATE TABLE lonely_cci;</span>
<span style="color: green;"> DROP TABLE lonely_cci; */</span>
</pre></div>
</div><div><br /></div><div><br /></div><div>***** Update 2021 December 7 *****</div><div><div>The [Target pages] counter is only updated every ~5 seconds. I don't know if the operational value is changed faster than that with shared memory for counter retrieval only updated every ~5 seconds? Or maybe the Resource Monitor has a ~5 second schedule for actually updating the operational value for [Target pages]? I *think* the operational value is updated immediately and shared memory only updated every ~5 seconds - that's the pattern I've seen with counters related to Resource Governor Workload Group requests completed/second and similar perfmon counters, too. </div><div><br /></div><div>When I used:</div><div>WAITFOR DELAY '00:00:05'</div><div>after each operation and before checking [Target pages], there were still occasional misses of the updated value (eg there was a non-NULL size reported for column store object pool memory broker clerk but [Target pages] was still the same too-big value as when the broker clerk did not exist). By waiting 6 seconds after each operation before checking I always saw [Target pages] updated as expected: when column store object pool broker clerk existed, [Target pages] was less than [Max Server Memory] (and less than [Target Server Memory]); when column store broker clerk did not exist, [Target pages] was much larger than [Max Server Memory].</div></div><div><br /></div><div>Here's some modified code including the WAITFOR DELAY '00:006' if you want to just run the durn thing in one go :-) It completes in ~36 seconds but it feels like <i><b>forever</b></i> before it finishes :-)</div><div><br /></div><div><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">CREATE</span> <span style="color: blue;">OR</span> <span style="color: blue;">ALTER</span> <span style="color: blue;">PROCEDURE</span> #memcheck @step NVARCHAR(30) = <span style="color: #a31515;">'no comment'</span> <span style="color: blue;">AS</span>
WAITFOR DELAY <span style="color: #a31515;">'00:00:06'</span>;
; <span style="color: blue;">WITH</span>
msm(max_server_memory__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> <span style="color: blue;">CONVERT</span>(INT, value_in_use) * 1024 <span style="color: blue;">FROM</span> sys.configurations
<span style="color: blue;">WHERE</span> name = <span style="color: #a31515;">'max server memory (MB)'</span>)
, ser(target_server__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> cntr_value <span style="color: blue;">FROM</span> sys.dm_os_performance_counters
<span style="color: blue;">WHERE</span> counter_name = <span style="color: #a31515;">'Target Server Memory (KB)'</span>)
, buf(target_pages__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> cntr_value * 8 <span style="color: blue;">FROM</span> sys.dm_os_performance_counters
<span style="color: blue;">WHERE</span> counter_name = <span style="color: #a31515;">'Target pages'</span>)
, bpool(bpool__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> total_kb <span style="color: blue;">FROM</span> sys.dm_os_memory_broker_clerks
<span style="color: blue;">WHERE</span> clerk_name = <span style="color: #a31515;">'Buffer Pool'</span>)
, cs(csopool__kb) <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> total_kb <span style="color: blue;">FROM</span> sys.dm_os_memory_broker_clerks
<span style="color: blue;">WHERE</span> clerk_name = <span style="color: #a31515;">'Column store object pool'</span>)
<span style="color: blue;">SELECT</span> capture_tm = SYSDATETIME(), target_pages__diy_operation = @step, *, vers = <span style="color: blue;">LEFT</span>(@@<span style="color: blue;">version</span>, PATINDEX(<span style="color: #a31515;">'%(KB%'</span>, @@<span style="color: blue;">version</span>) - 2)
<span style="color: blue;">FROM</span> msm <span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> ser <span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> buf <span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> bpool <span style="color: blue;">LEFT</span> <span style="color: blue;">OUTER</span> <span style="color: blue;">JOIN</span> cs <span style="color: blue;">ON</span> 1 = 1;
<span style="color: blue;">GO</span>
<span style="color: blue;">DROP</span> <span style="color: blue;">TABLE</span> IF <span style="color: blue;">EXISTS</span> #diy__target_pages;
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> #diy__target_pages
( capture_tm DATETIME2
, target_pages__diy_operation NVARCHAR(40)
, max_server_memory__kb BIGINT
, target_server__kb BIGINT
, target_pages__kb BIGINT
, bpool__kb BIGINT
, csopool__kb BIGINT
, vers NVARCHAR(40)
, <span style="color: blue;">INDEX</span> cci__diy__target_pages CLUSTERED (capture_tm)) <span style="color: blue;">WITH</span> (DATA_COMPRESSION = <span style="color: blue;">ROW</span>);
<span style="color: blue;">DROP</span> <span style="color: blue;">TABLE</span> IF <span style="color: blue;">EXISTS</span> #lonely_cci;
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> #lonely_cci (c1 INT, <span style="color: blue;">INDEX</span> cci__lonely_cci CLUSTERED COLUMNSTORE);
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #diy__target_pages <span style="color: blue;">EXEC</span> #memcheck N<span style="color: #a31515;">'cci created'</span>;
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #lonely_cci <span style="color: blue;">SELECT</span> TOP (1000) ROW_NUMBER() OVER (<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> (<span style="color: blue;">SELECT</span> <span style="color: blue;">NULL</span>)) <span style="color: blue;">FROM</span> master..spt_values;
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #diy__target_pages <span style="color: blue;">EXEC</span> #memcheck N<span style="color: #a31515;">'delta store insert'</span>;
IF (<span style="color: blue;">SELECT</span> <span style="color: blue;">COUNT</span>(*) <span style="color: blue;">FROM</span> #lonely_cci) = 1 PRINT <span style="color: #a31515;">'nope'</span>;
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #diy__target_pages <span style="color: blue;">EXEC</span> #memcheck N<span style="color: #a31515;">'delta store select'</span>;
<span style="color: blue;">ALTER</span> <span style="color: blue;">INDEX</span> cci__lonely_cci <span style="color: blue;">ON</span> #lonely_cci REORGANIZE <span style="color: blue;">WITH</span> (COMPRESS_ALL_ROW_GROUPS = <span style="color: blue;">ON</span>);
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #diy__target_pages <span style="color: blue;">EXEC</span> #memcheck N<span style="color: #a31515;">'reorg'</span>;
IF (<span style="color: blue;">SELECT</span> <span style="color: blue;">COUNT</span>(*) <span style="color: blue;">FROM</span> #lonely_cci) = 1 PRINT <span style="color: #a31515;">'nope'</span>;
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #diy__target_pages <span style="color: blue;">EXEC</span> #memcheck N<span style="color: #a31515;">'compressed select'</span>;
<span style="color: blue;">DROP</span> <span style="color: blue;">TABLE</span> #lonely_cci; <span style="color: green;">/* see comment below about ways to get rid of column store object pool memory broker clerk */</span>
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> #diy__target_pages <span style="color: blue;">EXEC</span> #memcheck N<span style="color: #a31515;">'drop table'</span>;
<span style="color: blue;">SELECT</span> * <span style="color: blue;">FROM</span> #diy__target_pages <span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> capture_tm <span style="color: blue;">ASC</span>;
<span style="color: green;">/* -- any of the following will result in eviction of the rowgroup's bpool pages from bpool</span>
<span style="color: green;"> -- once there are no bpool pages for any columnstore segment in the bpool</span>
<span style="color: green;"> -- [Target Pages] returns to a value much greater </span>
<span style="color: green;"> -- than [Max Server Memory] or [Target Server Memory]</span>
<span style="color: green;"> -- column store object pool memory broker clerk disappears </span>
<span style="color: green;"> -- from dm_os_memory_broker_clerks</span>
<span style="color: green;"> CHECKPOINT; DBCC DROPCLEANBUFFERS WITH no_infomsgs; </span>
<span style="color: green;"> DBCC FREESYSTEMCACHE('Column store object pool') WITH no_infomsgs;</span>
<span style="color: green;"> TRUNCATE TABLE #lonely_cci;</span>
<span style="color: green;"> DROP TABLE #lonely_cci; */</span>
</pre></div><div><br /></div><div>And this was the result when I ran that code on my lil ol' laptop.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlpG-64cnMt41GepWr-tcH9ppp6a33eSgIEpag8tvpZA0bi8Ilgc48ynGYW6R1Ppk9qGMPPb2K9HDg0CjmyTZj9kmzGSq3-MbXf7V7PnNmrYTgY9nOGJlgFK0KIeMRaN055XD55MXmlRX8/s1707/picture10.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="1707" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlpG-64cnMt41GepWr-tcH9ppp6a33eSgIEpag8tvpZA0bi8Ilgc48ynGYW6R1Ppk9qGMPPb2K9HDg0CjmyTZj9kmzGSq3-MbXf7V7PnNmrYTgY9nOGJlgFK0KIeMRaN055XD55MXmlRX8/s16000/picture10.png" /></a></div><br /><div><br /></div><div><i>Happy holidays!</i></div><div><i><br /></i></div><div><i><br /></i></div>***** End Update December 7 *****</div><div><br /></div></div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-82687598792151860082021-07-05T13:06:00.002-07:002021-07-05T13:30:46.811-07:00#SQLServer: There's Something About SQLOS Memory Node Free Memory on NUMA systems...<p>In 2018 I wrote two blog posts about memory accounting behavior on NUMA servers I was seeing in SQL Server 2016, 2017, and eventually 2019.</p><p>Some amount of memory counted by a SQLOS memory node as [Stolen Memory] was *also* counted by another SQLOS memory node as [Database cache].</p><div style="text-align: left;">SQL Server 2016 Memory Accounting: A Suspicious Surprise<br />2018 July 2<br /><a href="https://sql-sasquatch.blogspot.com/2018/07/sql-server-2016-memory-accounting.html">https://sql-sasquatch.blogspot.com/2018/07/sql-server-2016-memory-accounting.html</a></div><div style="text-align: left;"><br /></div><div style="text-align: left;">SQL Server 2016 Memory Accounting Part II: Another Suspicious Example<br /><a href="https://sql-sasquatch.blogspot.com/2018/10/sql-server-2016-memory-accounting-part.html">https://sql-sasquatch.blogspot.com/2018/10/sql-server-2016-memory-accounting-part.html</a></div><div style="text-align: left;">2018 October 25<br /></div><p>At first I thought it likely to be a reporting error only - something that made the numbers not tie out unless it was taken into consideration.</p><p>Maybe such a condition could exist without bubbling up as a performance degradation or error situation?</p><p>As I continued to observe the issue, however, I took note of the ways this double-counting of memory could result in performance drag or errors. I won't detail that here, but it is worth noting that KB4536005, which resolved this condition, lists out of memory errors as a potential consequence of this accounting error.</p><div style="text-align: left;">#SQLServer 2019 CU2<br />#SQLServer 2017 CU20<br />#SQLServer 2016 SP2 CU15</div><div style="text-align: left;">KB4536005 - FIX: Fix incorrect memory page accounting that causes out-of-memory errors in SQL Server</div><div style="text-align: left;"><a href="https://support.microsoft.com/en-us/topic/kb4536005-fix-fix-incorrect-memory-page-accounting-that-causes-out-of-memory-errors-in-sql-server-99d9ac21-77d6-a39c-c9b9-6d19d7e07cb5">https://support.microsoft.com/en-us/topic/kb4536005-fix-fix-incorrect-memory-page-accounting-that-causes-out-of-memory-errors-in-sql-server-99d9ac21-77d6-a39c-c9b9-6d19d7e07cb5</a></div><p><br /></p><p>At about the same time as noticing that some memory was double-counted among the SQLOS nodes, I noticed something else. Occasionally, one or more SQLOS memory nodes would report an outlandishly high number as the free SQLOS memory on that node. The number was obvious nonsense as it was higher than the amount of vRAM available to the vm.</p><p>I rationalized this as probably the result of a race condition at a time of low free memory - values for two memory measures reported at slightly different times yielding a negative number which came through the performance object as an absurdly high positive number. Because there were other memory issues to chase after, I was satisfied with the answer I provided myself, and willing to believe the condition could exist without any appreciable effect on performance or errors.</p><p>It's a few years later now and... uh... I no longer believe that.</p><p>I've seen cases where that ridiculously high SQLOS node free memory values are reported on the same SQLOS node every 30 seconds for two straight hours. I've seen cases where two of four SQLOS nodes are reporting the absurd high values at the same time. Nope, doesn't fit the profile of benign race condition anymore. Maybe I could just let it go if one of the SQL Server instances where this occurs doesn't also have active investigation for frequent buffer latch timeouts and for SQL Server seemingly failing to respond to low memory conditions.</p><p>OK, so I have to dig in.</p><p>In this post I will stray from my typical, graph heavy presentation. This one works better as tables, because the free memory involved is so doggone small compared to database cache and stolen memory it's really hard to find on the graph.</p><p>All of the tables below are from a single system, running SQL Server 2019 cu9. Perfmon is capturing lots of counters every 30 seconds.</p><p>First we'll look at instance-wide numbers from [\SQLServer:Memory Manager].</p><div style="text-align: left;">[Total Server Memory (KB)] is in column 2, with a purple header. <br />[Database Cache Memory (KB)] is in column 3 with a light blue header. <br />[Stolen Server Memory (KB)] is in column 4, also with a light blue header.</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Column 5, [Calculated Free Kb] has a light pink header. It is the result of this calculation in each interval:</div><div style="text-align: left;">[Total Server Memory (KB)] - [Database Cache Memory (KB)] - [Stolen Server Memory (KB)]</div><div style="text-align: left;"><br /></div><div style="text-align: left;">Column 6 [Free Memory (KB)] has an orange header. Notice below that it always has the same value as the preceding column, my calculated free memory.</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWg1Wy2ZVWmEVvq_kqqe9GsJPjderQ39rFTkH3KsAuMriuCgAyBIOL_E_z6cD8hAKyFGRiyLbw90mAgHGHh1BktcEaZMGzfUzbZdKQUAUwep86p8_yCx57Jok8r01pZ4BmrYhkciixU9j6/s1396/Picture1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="942" data-original-width="1396" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWg1Wy2ZVWmEVvq_kqqe9GsJPjderQ39rFTkH3KsAuMriuCgAyBIOL_E_z6cD8hAKyFGRiyLbw90mAgHGHh1BktcEaZMGzfUzbZdKQUAUwep86p8_yCx57Jok8r01pZ4BmrYhkciixU9j6/w640-h432/Picture1.png" width="640" /></a></div><br /><p>I expect to see the same relationship at the SQLOS memory node level, as we look at [\SQLServer:Memory Node(*)] counters. Indeed in each of the tables below this calculation for the memory node holds true, as the similar calculation holds true for the memory manager:</p><div style="text-align: left;">[\SQLServer:Memory Node(*)\Total Node Memory (KB)]<br />- [\SQLServer:Memory Node(*)\Database Node Memory (KB)]<br />- [\SQLServer:Memory Node(*)\Stolen Node Memory (KB)]<br />= [\SQLServer:Memory Node(*)\Free Node Memory (KB)]</div><div style="text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYcmOcvnneGUojIGeqJnAxW1phRDbBoTvsqNxKCTljQgfe248HMkIUtWFVePHv0Lu7tGdT-At_SWjzUSDEegP3cQEx-X99zWNntiDdDI8BL8v6ScQmRMDXSEN4Pj5gRHqJ8c3bNV4YbHy-/s1396/Picture2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="942" data-original-width="1396" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYcmOcvnneGUojIGeqJnAxW1phRDbBoTvsqNxKCTljQgfe248HMkIUtWFVePHv0Lu7tGdT-At_SWjzUSDEegP3cQEx-X99zWNntiDdDI8BL8v6ScQmRMDXSEN4Pj5gRHqJ8c3bNV4YbHy-/w640-h432/Picture2.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWNRzGuo_-xh66-CAB-3e9J1P-0uvnCgufup21tgThgmviTjTWU3EYHVR_LhDfbrpN1jnquGE9jEMlh7_WxSkJ9XK9BQgM0NSnY6AN5o6OBTXsqqUUpkccpLDK_c7pQDOfDCRPZLAein87/s1395/Picture3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="941" data-original-width="1395" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWNRzGuo_-xh66-CAB-3e9J1P-0uvnCgufup21tgThgmviTjTWU3EYHVR_LhDfbrpN1jnquGE9jEMlh7_WxSkJ9XK9BQgM0NSnY6AN5o6OBTXsqqUUpkccpLDK_c7pQDOfDCRPZLAein87/w640-h432/Picture3.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtm6azbmIW4mHUxiVu2vgWzKqejnxhqvY4SnOlH4wzG2saNfQ1gsB6nOzRAGbi7yYi5B0b2foW1hmMQUqCUDv5WXP76G1Tp999UFocVHxYGSY0HsKe3yxfnbf5jl0SIMBjBuhUfHJ6w9Et/s1396/Picture4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="942" data-original-width="1396" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtm6azbmIW4mHUxiVu2vgWzKqejnxhqvY4SnOlH4wzG2saNfQ1gsB6nOzRAGbi7yYi5B0b2foW1hmMQUqCUDv5WXP76G1Tp999UFocVHxYGSY0HsKe3yxfnbf5jl0SIMBjBuhUfHJ6w9Et/w640-h432/Picture4.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">When I showed the tables above to my colleagues, they were onto me right away. "Where is node 002?"</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Well... yeah. Node 002 looks a little different. I've only seen three distinct absurd [Free Node Memory (KB)] values so far: 18446744073709300000, 18446744073709400000, 18446744073709500000.</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4YDiYJheBAd65L1KPrpqYp9TXNVkIXgNhrgFnTLTOtYeu7pN19XnvKrtOCMYh0d3gCGwvnp10xukTjMhM_C3xpNPMlBxNqJ36VjiJDpBD7Jx0Pfv-6AoFwXxib5DJoVGyEQ-npXwRsP3A/s1397/Picture5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="941" data-original-width="1397" height="432" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4YDiYJheBAd65L1KPrpqYp9TXNVkIXgNhrgFnTLTOtYeu7pN19XnvKrtOCMYh0d3gCGwvnp10xukTjMhM_C3xpNPMlBxNqJ36VjiJDpBD7Jx0Pfv-6AoFwXxib5DJoVGyEQ-npXwRsP3A/w640-h432/Picture5.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Considering that each of the 4 vNUMA nodes on this system has 640,000 mb vRAM, maybe the lowest value above of -154608 kb doesn't seem like it could cause that much trouble. That's about -150 mb. And of course free memory can't really be negative. So there's a memory accounting error of at least 150 mb. How bad could that be?</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Well... low memory condition signal is when less than 200 mb available memory, right?</div><div class="separator" style="clear: both; text-align: left;">In some cases, a memory accounting error of 150 mb could defintely cause trouble. Even on a system with a massive amount of memory.</div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><p><br /></p><p><br /></p><p><br /></p><p><br /></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-50603969063965965292021-06-12T23:04:00.006-07:002021-06-13T07:57:07.228-07:00#SQLServer Snapshot Isolation Level - increase query CPU time and elapsed time by a factor of 8!<p>OK. This is a little test in my SQL Server 2019 CU11 instance. But the behavior I will demonstrate goes way back... and seems like it just may go way forward, too.</p><p>First, let's create a test database, with a nice little 3 column CCI table in it.</p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">USE [master];
<span style="color: blue;">GO</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">DATABASE</span> [test_SI]
<span style="color: blue;">ON</span> <span style="color: blue;">PRIMARY</span> ( NAME = N<span style="color: #a31515;">'test_SI'</span>
, FILENAME = N<span style="color: #a31515;">'C:\Program Files\Microsoft SQL Server\MSSQL15.V2019CU11\MSSQL\DATA\test_SI.mdf'</span>)
LOG <span style="color: blue;">ON</span> ( NAME = N<span style="color: #a31515;">'test_SI_log'</span>
, FILENAME = N<span style="color: #a31515;">'C:\Program Files\Microsoft SQL Server\MSSQL15.V2019CU11\MSSQL\DATA\test_SI_log.ldf'</span>);
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [test_SI] <span style="color: blue;">SET</span> ALLOW_SNAPSHOT_ISOLATION <span style="color: blue;">ON</span>;
<span style="color: blue;">GO</span>
USE [test_SI]
<span style="color: blue;">DROP</span> <span style="color: blue;">TABLE</span> IF <span style="color: blue;">EXISTS</span> dbo.SI_DeletedRows;
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> dbo.SI_DeletedRows
( x_key [bigint] <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>
, x_value [int] <span style="color: blue;">NULL</span>
, x_comment [varchar](512) <span style="color: blue;">NULL</span>
, <span style="color: blue;">INDEX</span> [CCI__SI_DeletedRows] CLUSTERED COLUMNSTORE
);
</pre></div>
<p>Let's take 2 minutes (or less) to insert 104,203,264 rows into the clustered columnstore index created. </p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">;<span style="color: blue;">WITH</span> sixteen <span style="color: blue;">AS</span>
( <span style="color: blue;">SELECT</span> num = 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre><pre style="line-height: 125%; margin: 0px;"><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;"> UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;"> UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;"> UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;"> UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre></pre><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;"><span> </span><span> </span>UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre><pre style="line-height: 125%; margin: 0px;"><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;"> UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1</pre></pre><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;"> UNION</span> ALL <span style="color: blue;">SELECT</span> 1 <span style="color: blue;">UNION</span> ALL <span style="color: blue;">SELECT</span> 1)</pre><pre style="line-height: 125%; margin: 0px;"><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;">INSERT INTO <span> </span></span>dbo.SI_deletedRows</pre><span style="color: blue;">SELECT</span> ROW_NUMBER() OVER (<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> s1.number <span style="color: blue;">DESC</span>), s1.number, s1.name
<span style="color: blue;">FROM</span> master..spt_values s1</pre><pre style="line-height: 125%; margin: 0px;"><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> master..spt_values s2 </pre><span style="color: blue;">CROSS</span> <span style="color: blue;">JOIN</span> sixteen;
</pre><pre style="line-height: 125%; margin: 0px;"><pre style="color: #333333; line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;"><span style="color: green;">/*</span> <span style="color: green; font-family: Consolas; font-size: 9.5pt;">104203264 rows</span><div style="text-align: left;"><span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas; mso-fareast-font-family: "Times New Roman";">min - 1:37</span></div><span style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas; mso-bidi-language: AR-SA; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: EN-US;">max - 1:56 </span><span style="color: green;">*/</span></pre></pre></div>
<p>All right - now let's check on the rowgroup quality. Pretty nice; 100 rowgroups. 99 of them at maximum size, and 1 with almost 400,000 rows.</p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">SELECT</span> csrgps.state_desc, num_groups = <span style="color: blue;">count</span>(*), rows_in_group = csrgps.total_rows
, csrgps.trim_reason_desc, csrgps.transition_to_compressed_state_desc
<span style="color: blue;">FROM</span> sys.dm_db_column_store_row_group_physical_stats csrgps
<span style="color: blue;">WHERE</span> csrgps.object_id = object_id(<span style="color: #a31515;">'dbo.SI_DeletedRows'</span>)
<span style="color: blue;">GROUP</span> <span style="color: blue;">BY</span> csrgps.state_desc, csrgps.total_rows, csrgps.trim_reason_desc
, csrgps.transition_to_compressed_state_desc;
</pre></div>
<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyJFyVMjdMtwoiaJXFq5MNSc_WRTEdzG8y62_qiRBI1W4LPRO1c311zUrSvV2wEU6Snxm7-srzvxLUVuPO48jVp4y3vVChr7ntr6ch5uQAuf6Y6lvkzwYKdEt0MnCwTjkBu389dSy4lLc6/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="312" data-original-width="1164" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyJFyVMjdMtwoiaJXFq5MNSc_WRTEdzG8y62_qiRBI1W4LPRO1c311zUrSvV2wEU6Snxm7-srzvxLUVuPO48jVp4y3vVChr7ntr6ch5uQAuf6Y6lvkzwYKdEt0MnCwTjkBu389dSy4lLc6/w640-h172/image.png" width="640" /></a></div><br />Let's take a minute and delete 1 row out of every 15 from the CCI.<br /><p></p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">DELETE</span> <span style="color: blue;">FROM</span> dbo.SI_DeletedRows <span style="color: blue;">WHERE</span> x_key % 15 = 0;
<span style="color: green;">/* 6946884 rows, 6.67%</span>
<span style="color: green;">0:51 */</span>
</pre></div>
<p>Here's a quick little query against the CCI, in Read Committed transaction isolation level. The query is run all by itself on the instance, at DOP 1.</p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">SET</span> TRANSACTION <span style="color: blue;">ISOLATION</span> <span style="color: blue;">LEVEL</span> <span style="color: blue;">Read</span> <span style="color: blue;">Committed</span>
<span style="color: blue;">SET</span> <span style="color: blue;">STATISTICS</span> TIME <span style="color: blue;">ON</span>
<span style="color: blue;">SELECT</span> <span style="color: blue;">COUNT</span>(1) <span style="color: blue;">FROM</span> dbo.SI_DeletedRows
<span style="color: blue;">WHERE</span> x_comment <span style="color: blue;">IN</span> (<span style="color: #a31515;">'money'</span>, <span style="color: #a31515;">'smallmoney'</span>, <span style="color: #a31515;">'offline'</span>, <span style="color: #a31515;">'Little Vito'</span>)
<span style="color: blue;">OR</span> x_comment <span style="color: blue;">IS</span> <span style="color: blue;">NULL</span>
<span style="color: blue;">OPTION</span> (MAXDOP 1);
<span style="color: green;">/* </span><span style="color: green;"> SQL Server Execution Times:</span>
<span style="color: green;"> CPU time = 312 ms, elapsed time = 327 ms. */</span>
</pre></div>
<p>Let's run the query again at DOP 1. But change the isolation level to Snapshot. No other queries are running on the instance, so there is no competition for resources. There is nothing in the version store, and there are no other open transactions against the objects in the query. Snapshot isolation all by itself is responsible for increasing the CPU time and the elapsed time of this query on a CCI with deleted rows by a factor of eight.</p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">SET</span> TRANSACTION <span style="color: blue;">ISOLATION</span> <span style="color: blue;">LEVEL</span> SNAPSHOT
<span style="color: blue;">SET</span> <span style="color: blue;">STATISTICS</span> TIME <span style="color: blue;">ON</span>
<span style="color: blue;">SELECT</span> <span style="color: blue;">COUNT</span>(1) <span style="color: blue;">FROM</span> dbo.SI_DeletedRows
<span style="color: blue;">WHERE</span> x_comment <span style="color: blue;">IN</span> (<span style="color: #a31515;">'money'</span>, <span style="color: #a31515;">'smallmoney'</span>, <span style="color: #a31515;">'offline'</span>, <span style="color: #a31515;">'Little Vito'</span>)
<span style="color: blue;">OR</span> x_comment <span style="color: blue;">IS</span> <span style="color: blue;">NULL</span>
<span style="color: blue;">OPTION</span> (MAXDOP 1);
<span style="color: green;">/* SQL Server Execution Times:</span>
<span style="color: green;"> CPU time = 2625 ms, elapsed time = 2638 ms. */</span>
</pre></div>
<p>I've seen this behavior on production systems. But in the field, the effect can be even more pronounced than this example. I've seen more complicated queries involving CCIs have snapshot isolation increase their runtime from under 1 second to over 60 seconds.</p><p>That's too bad, since snapshot isolation is a canonical solution that can facilitate read analytics queries against the same database supporting read-write workloads.</p><p>If Snapshot Isolation does not meet workload goals, often RCSI is evaluated as an option. In this case, RCSI introduces the same performance overhead as snapshot isolation.</p><p>An Availability Group readable secondary also experiences the same performance overhead.</p><p>Removing all deleted rows from a CCI allows CCI queries in Read Committed and Snapshot Isolation levels to perform comparably (assuming no competition for resources or locks). But, CCI reorgs will only remove deleted rows from rowgroups with at least 10% of their rows deleted. And CCI rebuilds may not be appropriate given resource and other constrains.</p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-72365574950089787722021-04-27T09:06:00.004-07:002021-07-07T19:43:19.099-07:00SQL Server: Perfmon active parallel threads vs active requests vs DOP<p>This question came across my desk today. And I sent an answer I hope was helpful. Honestly the second part of the answer, still forthcoming, might be more what the question was after. But first I'll try to prevent wrong conclusions/evaluarion, later I'll give some ideas how to evaluate in an actionable way.</p><p><br /></p><p>~~~~</p><p>How does the perfmon active parallel threads counter related to the
DOP settings? I guess I assumed it would be something like active threads x DOP
= active parallel threads but that doesn’t seem to be right.</p><p>~~~~</p><p class="MsoNormal"><o:p></o:p></p><p class="MsoNormal">My lengthy but not (yet) graph-y response <span face=""Segoe UI Emoji",sans-serif" style="mso-bidi-font-family: "Segoe UI Emoji";">😊</span></p>
<p class="MsoNormal"><b>The short answer: there isn’t a direct, predictable
relationship for active parallel threads to workload group DOP or active requests at the workload
group level</b>(or even for sum of all workload group active px threads in a
resource pool vs active memory grants in the pool – which is tighter but still
unpredictable*). I often add those measures for a workload group (as a
stacked graph) and put CPU % for the workload group as a line graph on the other
Y axis for trending. </p>
<p class="MsoNormal">When a parallel plan is prepared, it may contain multiple
zones or branches which can operate independently after they branch off and
until they are combined. So when the plan is selected, a reservation for DOP *
branches parallel workers is made(the session already has an execution context
ID 0 worker which is compiling the plan and will do all the work for DPO 1
queries). If the current outstanding reservations plus all execution
context ID 0 workers (whether coordinators for parallel queries, DOP 1 queries,
or in the process of plan compilation) *<b>plus</b>* the sought reservation
exceeds [Max Worker Threads Count] for the instance, DOP will be adjusted
downward until it fits. If there is a specific memory grant necessary to
support the DOP and that memory grant is unavailable, DOP could be downgraded
for memory reasons, too. (I’ve only seen that happen for CCI inserts but I
guess it could happen elsewhere) Worker thread pressure can result in
parallel queries getting downgraded all the way to DOP 1. (In
sys.query_store_runtime_stats you can see last_dop = 1 and if look at linked
sys.query_store_plan is_parallel_plan = 1). </p>
<p class="MsoNormal">I’ve seen a single <strike>***!!REDACTED!!***</strike> query at DOP 8 reserve 200 parallel workers or more!</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">Now, the trick with parallel workers is that no matter how
many branches in the plan and how many total parallel workers, they will *<b>all</b>*
go on the same SQL Server schedulers (so all on the same vcpus) and the count
of those schedulers/vcpus will be equal to the DOP. (Execution context ID 0 thread can co-locate with parallel threads for the same query, or not. Even if all px threads for a query are within a given autosoftNUMA node or SQLOS memory node, the execution context ID 0 thread can be elsewhere.)</p>
<p class="MsoNormal">So DOP doesn’t directly govern how many workers a parallel
plan will reserve. But it does determine how many vcpus the workers for that
query will occupy. The parallel workers for a DOP 8 query on a 16 vcpu
system cannot get the vm to more than 50% cpu busy no matter how many of them
there are. Because they will be on no more than 8 of the 16 vcpus.</p>
<p class="MsoNormal">OK, final trick with this: the initial parallel worker
thread reservation is similar to a memory grant in that its based on initial
understanding and estimates of the plan by the optimizer, while “active
parallel worker threads” are determined by current runtime activity.</p>
<p class="MsoNormal">It’s possible (even likely, really) that a query which
reserves 200 parallel worker threads doesn’t actually use them all. If
one branch finishes before another branch starts, those workers might be
reused. So the reservation may be higher than “active parallel worker threads” in perfmon ever
gets.</p>
<p class="MsoNormal">All of these details can be seen in
sys.dm_exec_query_memory_grants. AFAIK every parallel query will have a memory
grant. In that DMV, can see reserved parallel threads, active threads at the
time, and max px threads used by the query till that point in time.</p>
<p class="MsoNormal">I’ll create another post about tuning DOP based on perfmon measures later today.<o:p></o:p></p>
<p class="MsoNormal">Some additional details from Pedro Lopes of Microsoft in
the 2020 July 7 post linked below.</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><a href="https://techcommunity.microsoft.com/t5/sql-server/what-is-maxdop-controlling/ba-p/1505968">What
is MaxDOP controlling? - Microsoft Tech Community</a></p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p>*The exceptions to the unpredictability</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">- if a workload is composed solely of queries for which the
plans have solely batch mode operators. Then each query will have DOP active
parallel workers + 1 execution context ID 0 worker (or occasionally a single
active worker for certain plan operators which may force such)<o:p></o:p></p>
<p class="MsoNormal">- if the workload is comprised fully of parallel
checkdb/checktable workers. In this case the max active parallel workers will
be 2*DOP (and the session still has an execution context ID 0 thread). Beware that as of SQL Server 2019 CU9 large scale parallel CHECKDB/CHECKTABLE operations spend a considerable, irreducible amount of time effectively operating at DOP 1. <o:p></o:p></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-46283586531178681042021-04-26T17:41:00.000-07:002021-04-26T17:41:08.081-07:00A Very Circuitous Answer to a Question about #SQLServer PLE
<p class="MsoNormal">Usually if I use PLE at all, rather than using PLE as a
first-tier indicator of an issue, I use it to confirm issues I’ve detected or
suspected based on other evidence. Below I give some of the
reasons. And ideas to look at rather than PLE. <br /></p>
<p class="MsoNormal">~~ <br /></p>
<p class="MsoNormal">If the vm has multiple vNUMA nodes, in addition to the
[\NUMA Node Memory(*)\*] counters which describe memory utilization at the
vNUMA node level, you’ll see [\SQLServer:Buffer Node(*)\*] and
[SQLServer:Memory Node(*)\*] counters to describe activity within the SQLOS
memory nodes (unless an instance has trace flag 8015 enabled, which disables #sqlserver
NUMA detection). <br /></p>
<p class="MsoNormal">From the Buffer Nodes counters, the counter I use most
frequently is [\SQLServer:Buffer Node(*)\Page life expectancy]. <br /></p>
<p class="MsoNormal">[\SQLServer:Buffer Manager\Page life expectancy] is equal to
[\SQLServer:Buffer Node(000)\Page life expectancy] if there is only 1
vNUMA node (or if NUMA detection disabled with T8015). Otherwise,
[\SQLServer:Buffer Manager\Page life expectancy] is equal to the harmonic
mean of [\SQLServer:Buffer Node(*)\Page life expectancy] values. <br /></p>
<p class="MsoNormal">Here’s a blog post from 4 ½ years ago where I try to derive
overall PLE as harmonic mean of node PLEs. Plus you get to see what my graphs
looked like 4 ½ years ago <span style="font-family: "Segoe UI Emoji",sans-serif; mso-bidi-font-family: "Segoe UI Emoji";">😊</span></p>
<p class="MsoNormal">Harmonic mean of SQLOS Buffer Node PLEs on NUMA servers </p><p class="MsoNormal"><a href="http://sql-sasquatch.blogspot.com/2016/10/harmonic-mean-of-sqlos-buffer-node-ples.html">http://sql-sasquatch.blogspot.com/2016/10/harmonic-mean-of-sqlos-buffer-node-ples.html</a></p>
<p class="MsoNormal"></p>
<p class="MsoNormal">The main thing is, cache churn on a single vNUMA node can
have a pretty significant impact on instance-wide PLE.</p>
<p class="MsoNormal">And the formula for determining PLE at the SQLOS memory
node/vNUMA node level isn’t public.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">But, let’s think through the things that would have to go
into a page life expectancy calculation.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">First would be size of the database cache. The larger
the database cache with a fixed workload, the longer we’d expect a given page
to last in database cache.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">Then we’d also need a database page insertion rate.
Database pages can be inserted due to page reads, or due to the first row
insert to a previously empty page. Improving performance of a given
workload means increasing the pace of page reads, or increasing the pace of
first row inserts, or both. For a given database cache size, increasing
the pace of work decreases PLE. <b>For a given database cache size,
decreasing the pace of work will increase PLE.</b> That’s about as
short of an explanation as I an provide about why PLE isn’t a direct measure of
performance or resource utilization.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">Then there’s the change in database cache size. The
database cache isn’t a fixed size. It has a minimum size of 2% of [Target
Node Memory] on each node, once it’s crossed that minimum size. And SQL
Server tries to keep it at least 20% of [Target Server Memory]. But for a
given workload, the larger the database cache, the higher the PLE.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">Now, the formula for PLE isn’t publicly documented. So
this is speculation on my part. But I believe that not only are observed values
for sizes and rates used to calculate PLE. I believe “velocity” or rate
of change is used as well. I’m pretty sure PLE is not only adaptive but
predictive.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">OK. Well, if I don’t look at PLE until I look at other
stuff, what other stuff would I look at first?</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">I’d start with a stacked graph of [Database Cache] + [Free
Memory] + [Stolen Memory], first. Put in [Target Memory], too, as a line graph. <br /></p>
<p class="MsoNormal">I’ll use some graphs from some work last year.</p><p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /></p><p class="MsoNormal">Especially if there is no use of paging space, I’d move on
to memory grants. (If there <b>is</b> use of paging space like our colleague noticed,
investigation to see if MSM is too high, or if another memory-consuming app is
on the VM can be valuable. The memory-consumer could even be sending a
SQL Server backup to a backup manager like Data Domain, Commvault, etc if using
a method that doesn’t bypass file cache aka not using unbuffered IO. Let's talk 'bout paging space another day.) <br /></p>
<p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /></p>
<p class="MsoNormal"></p>
<p class="MsoNormal">Let’s add in CPU for the resource pool.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /></p>
<p class="MsoNormal"></p>
<p class="MsoNormal">The part in the blue box looks a bit suspicious. It’s got
fewer active memory grants than other “busy” times. But CPU utilization
is higher.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal"> <img alt="" src="data:image/png;base64,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" /></p>
<p class="MsoNormal">Huh. If we look at overall SQL Server memory and
this time bring in PLE as a line graph, that period looks pretty exceptional, too. High CPU,
and growing PLE.</p><p class="MsoNormal"> <img alt="" src="data:image/png;base64,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" /></p>
<p class="MsoNormal">Oh. A huge amount of backup traffic. (SQL Server
backups can use a lot of CPU if they are compressed or encrypted.) So backup traffic, some active memory grants, some pending memory grants.<br /></p>
<p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /></p>
<p class="MsoNormal">And if I look at granted memory vs the maximum allowed
workspace memory, I see the dynamic that is leading to pending grants.</p>
<p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /> <br /></p>
<p class="MsoNormal">Max Server Memory on this instance is 960 GB. But
memory grants for a given resource pool are not calculated directly against
MSM. Rather, they are calculated against the maximum target for the
relevant resource semaphore for the resource pool. In this SQL Server
instance, no resource pools have been added beyond default (which contains all
of the user workload sessions) and the internal resource pool. So the
graph above works out and makes sense. (If there are multiple
non-internal resource pools - eg default + ORM_unrealistic - that
simultaneously have memory grants, a graph like this might not make sense and
info from the DMVs may be needed. Because [Reserved Memory] in perfmon is global across all resource pools.) <br /></p>
<p class="MsoNormal">Notice how when [Reserved Memory] is layered in front of
[Granted Memory], only a small portion of [Granted Memory] is visible at the
top. Looking across all the queries and workload groups, as a whole, the
queries are asking for <b>wayyy</b> more workspace memory than they
need. Lots of room for tuning. <br /></p>
<p class="MsoNormal">Now there’s one more unusual thing about the area in the
blue box. That’s a <b>lot</b> of room between the granted memory and
the maximum workspace memory. Why are there still so many pending memory grants
for so long? It has to do with what query is at the front of the waiting
line, and how big of a grant it wants. <br /></p>
<p class="MsoNormal">At least one of the workload groups at this time still had a
25% maximum grant per query. But that difference between max workspace
memory and granted memory is way more than 25%, isn’t it? <br /></p>
<p class="MsoNormal">Here’s a rule about memory grants that matter when start
getting close to the max: for a grant to succeed, 1.5x the grant must be
available for granting. That way, at least half the size of the most
recent grant is <b>still</b> available for grants afterward. It’s a way
to make sure a small number of very grant hungry queries don’t permanently
squeeze out queries that request smaller grants. </p>
<p class="MsoNormal">OK, that’s probably more than anyone needed to see <span style="font-family: "Segoe UI Emoji",sans-serif; mso-bidi-font-family: "Segoe UI Emoji";">today 😊</span></p>
<p class="MsoNormal">Just remember – PLE by itself doesn’t tell me much of what’s
going on in SQL Server.</p>
<p class="MsoNormal"></p>
<p class="MsoNormal">In the box below PLE is constantly rising. But the
workloads suffer from the same performance problem inside the box as outside the box – really
long resource_semaphore waits for memory grants.</p>
<p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /></p>
<p class="MsoNormal"><img alt="" src="data:image/png;base64,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" /></p>
SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-14611876814345679452021-04-15T21:15:00.000-07:002021-04-15T21:15:16.945-07:00A little something for exploring placement of SQL Server Parallel Workers<!-- HTML generated using hilite.me --><div style="background: #ffffff; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #0000ff">CREATE</span> <span style="color: #0000ff">OR</span> <span style="color: #0000ff">ALTER</span> <span style="color: #0000ff">PROCEDURE</span> scheduler_px_worker__report
<span style="color: #0000ff">AS</span>
<span style="color: #0000ff">BEGIN</span>
;<span style="color: #0000ff">WITH</span> tasks <span style="color: #0000ff">AS</span>
(<span style="color: #0000ff">SELECT</span> ot.scheduler_id,
ot.session_id,
ot.exec_context_id
<span style="color: #0000ff">FROM</span> sys.dm_os_tasks ot
<span style="color: #0000ff">JOIN</span> sys.dm_exec_requests er
<span style="color: #0000ff">ON</span> ot.session_id = er.session_id
<span style="color: #0000ff">AND</span> ot.exec_context_id > 0)
<span style="color: #0000ff">SELECT</span> t.scheduler_id, os.parent_node_id,
spid__exec_context_id = STRING_AGG(<span style="color: #0000ff">CONVERT</span>(VARCHAR(4), t.session_id)
+ <span style="color: #a31515">':'</span> + <span style="color: #0000ff">CONVERT</span>(VARCHAR(4), t.exec_context_id), <span style="color: #a31515">', '</span>)
WITHIN <span style="color: #0000ff">GROUP</span> (<span style="color: #0000ff">ORDER</span> <span style="color: #0000ff">BY</span> t.session_id, t.exec_context_id)
<span style="color: #0000ff">FROM</span> tasks t
<span style="color: #0000ff">JOIN</span> sys.dm_os_schedulers os
<span style="color: #0000ff">ON</span> t.scheduler_id = os.scheduler_id
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> os.parent_node_id, t.scheduler_id
<span style="color: #0000ff">ORDER</span> <span style="color: #0000ff">BY</span> os.parent_node_id, t.scheduler_id;
<span style="color: #0000ff">END</span>
</pre></div>
<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqQmj2szL6iSdCFG6gGPKLaU67DczB5LqV6nFZV8Jn_pHR_O8n8fVx13cR7gdRChe21ti0RDWociZOoio_BGli-WxXsp33mY952kRvJasay4-D8O79GBJFvr_EWrjMqMk-2HUC2tbLSAQ9/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="596" data-original-width="954" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqQmj2szL6iSdCFG6gGPKLaU67DczB5LqV6nFZV8Jn_pHR_O8n8fVx13cR7gdRChe21ti0RDWociZOoio_BGli-WxXsp33mY952kRvJasay4-D8O79GBJFvr_EWrjMqMk-2HUC2tbLSAQ9/s16000/image.png" /></a></div><br /><p></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-66344166837591026202020-09-23T09:51:00.004-07:002020-09-23T09:51:40.712-07:00SQL Server 2016++, checkdb/checktable, and trace flags 2549 & 2562<p> TL;dr</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">Trace flag 2549 is no longer required for checkdb or
checktable in SQL Server 2016++.<o:p></o:p></p>
<p class="MsoNormal">Trace flag 2562 may still benefit checkdb on a system
(depends on disk characteristics and tempdb) in SQL Server 2016++, but is not expected to benefit checktable
due to the already-limited scope of checktable activity.</p><p class="MsoNormal">~~~~~~~~~~~~~</p><p class="MsoNormal">Trace flags 2549 and 2562 were introduced in kb2634571, linked below.</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">2549 - by default checkdb (and checktable) before SQL Server
2016 planned its concurrent disk IO per Windows drive letter, in order to
achieve a reasonable pace without overloading disk subsystems.<o:p></o:p></p>
<p class="MsoNormal">The problem came in for systems using mount points.
One system might put SQL Server data files on 8 Windows volumes as eight
separate drive letters. Another system could put the data files on 8 Windows
volumes under a single drive letter, using mount points.<o:p></o:p></p>
<p class="MsoNormal">The system with eight separate drive letters would experience
much higher concurrent disk traffic from checkdb/checktable than the system
with a single drive letter. And if that system could handle the higher
disk IO pace, checkdb/checktable would perform better on that system.<o:p></o:p></p>
<p class="MsoNormal">Trace flag 2549 was introduced to even the playing field -
increasing the pace of checkdb/checktable disk io for systems using
mountpoints. This was done by planning the disk IO per database file, rather than per drive letter. </p>
<p class="MsoNormal">In SQL Server 2016, there were changes to components used by
checkdb/checktable explained in the second link below that make trace flag 2549
no longer needed. The second link below describes MultiObjectScanner vs CheckScanner (introduced in SQL Server 2016).<o:p></o:p></p>
<p class="MsoNormal"><br /></p>
<p class="MsoNormal">2562 - by default, checkdb groups the heaps and b-tree
indexes into batches of up to 512 for its activity.<o:p></o:p></p>
<p class="MsoNormal">With trace flag 2562 enabled, checkdb puts all heaps and
b-tree indexes into a single batch.<o:p></o:p></p>
<p class="MsoNormal">This trace flag often speeds the performance of checkdb with
physical_only on systems using hard drive storage (by minimizing disk head
traffic and lowering average disk read service times).<o:p></o:p></p>
<p class="MsoNormal">However tempdb is a serious consideration for this trace
flag when checkdb is running without physical_only (when logical checks are
run).<o:p></o:p></p>
<p class="MsoNormal">Tempdb use for logical checks increases until the batch of
heaps and b-tree indexes is complete. Watching tempdb use by checkdb on a
system with many batches, tempdb use can be seen to increase as each batch
runs, then drop with the start of another batch.<o:p></o:p></p>
<p class="MsoNormal">If all heaps and b-tree indexes are in a single batch due to
trace flag 2562, tempdb use increases until checkdb is complete.<o:p></o:p></p>
<p class="MsoNormal">Another consideration with trace flag 2562: a single
nonpartitioned table will not require more than one batch, it will already fit
in a single batch.</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">So trace flag 2562 is not expected to effect the operation of
checktable.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>Improvements for the DBCC CHECKDB command may result in
faster performance when you use the PHYSICAL_ONLY option</b></p><p class="MsoNormal"><a href="https://support.microsoft.com/en-us/help/2634571/improvements-for-the-dbcc-checkdb-command-may-result-in-faster-perform">https://support.microsoft.com/en-us/help/2634571/improvements-for-the-dbcc-checkdb-command-may-result-in-faster-perform</a></p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b>SQL 2016 - It Just Runs Faster: DBCC Scales 7x Better</b><o:p></o:p></p>
<p class="MsoNormal"><a href="https://docs.microsoft.com/en-us/archive/blogs/psssql/sql-2016-it-just-runs-faster-dbcc-scales-7x-better">https://docs.microsoft.com/en-us/archive/blogs/psssql/sql-2016-it-just-runs-faster-dbcc-scales-7x-better</a><o:p></o:p></p>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-47712783939127890692020-09-18T22:42:00.005-07:002020-10-10T14:56:40.761-07:00SQL Server 2019 - the strangest thing happened on the way to my cardinality estimate<div class="separator"><br /></div><div class="separator">*** This post was updated 2020 October 10 with some additional details at the end. ***</div><div class="separator"><br /></div><div class="separator">Today was kind of a rough day. It started with a colleague asking if I knew any handy tricks that could magically make dozens of queries go back to the seconds or minutes they ran at under SQL Server 2012 rather than the increments of half-hours they were taking since an upgrade to SQL Server 2016.</div><p>Well - I know a few. Was trace flag 4199 globally enabled on 2012? Yep. And on 2016? Database Compat level 2016, and optimizer hotfixes enabled in database scoped configuration.</p><p>Ok. Well, in SQL Server 2012 they were using the Legacy CE because it was the only one around. How about on SQL Server 2016? Legacy CE enabled in database scoped configuration.</p><p>Oh.</p><p>How about ascending key? Trace flag 4139 was globally enabled in SQL Server 2012. And in SQL Server 2016? Yep, globally enabled there, too.</p><p>Trace flag 4138 to disable row goal adjustments has sometimes made a huge difference. I didn't mention it yet, though. Better to see an affected plan first. And once I saw an affected plan... well, it really didn't look like trace flag 4138 could help, either. The bad plan was all nested loop joins, filters, parallelism operators and compute scalar operators. By adding a HASH JOIN hint, the plan looked more familiar to my colleague and query performance went back to the few seconds normally expected. But the developers wanted to understand the regression, and if possible avoid adding the hint to dozens or maybe even more than a hundred queries.</p><p>That was just about the end of my quick-n-easy list. For good measure my colleague checked what happened to the plan with SQL Server 2012 compat level: no substantive change. And with the default CE: no substantive change.</p><p>I started staring at statistics. Maybe some very important, very popular stats had fallen prey to extremely unlucky samples.</p><p>I became very suspicious when I noticed that a fairly important auto-created statistics object was on a varchar(66) column. But the query used integer values for that column heavily in the query predicate.</p><p>Sure 'nuf, the range_high_values were all integers, but because the column was varchar, the range_high_keys were dictionary sorted. That always makes me kinda suspicious.</p><p>And in that original query plan, a three million row table was pushed through a filter with a row estimate of 1 coming out. That's very suspicious.</p><p>So for several hours I tested various hinky ideas.</p><p>And finally, late on a Friday night, I think I discovered the problem. I won't know for sure until Monday when similar tests can be run on-site against their data on a SQL Server 2016 and 2012 system. But... even if this isn't *that* problem, it is *a* problem and its present in SQL Server 2019 CU6.</p><p>Time for show and tell. This work is being done in SQL server 2019 CU6.</p><p>Let's create a simple 3 column table. Each of the columns are varchar data type. Create statistics on col1. Populate the table with 50,000 rows. The first column col1 gets populated with integers from 9900 to 14900, in multiples of 100. Then let's update statistics.</p><!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border-color: gray; border-image: initial; border-style: solid; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> [dbo].[stats_test4](
[col1] [varchar](66) <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
[fluff] [varchar](4200) <span style="color: blue;">NULL</span>,
[col2] [varchar](66) <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>
) <span style="color: blue;">ON</span> [<span style="color: blue;">PRIMARY</span>];
<span style="color: blue;">CREATE</span> <span style="color: blue;">STATISTICS</span> stats_test4__col1 <span style="color: blue;">ON</span> stats_test4(col1);
;<span style="color: blue;">with</span> nums <span style="color: blue;">as</span>
(<span style="color: blue;">select</span> top (1000) n = row_number() over (<span style="color: blue;">order</span> <span style="color: blue;">by</span> (<span style="color: blue;">select</span> <span style="color: blue;">null</span>))
<span style="color: blue;">from</span> master..spt_values)
, recur <span style="color: blue;">as</span>
(<span style="color: blue;">select</span> top (50) n = row_number() over (<span style="color: blue;">order</span> <span style="color: blue;">by</span> (<span style="color: blue;">select</span> <span style="color: blue;">null</span>))
<span style="color: blue;">from</span> master..spt_values)
, fluff <span style="color: blue;">as</span>
(<span style="color: blue;">select</span> z = replicate(<span style="color: #a31515;">'Z'</span>, 4100))
<span style="color: blue;">insert</span> <span style="color: blue;">into</span> stats_test4
<span style="color: blue;">select</span> 10000 + 100 * (nums.n % 50 - 1), fluff.z, 1
<span style="color: blue;">from</span> nums
<span style="color: blue;">cross</span> <span style="color: blue;">join</span> recur
<span style="color: blue;">cross</span> <span style="color: blue;">join</span> fluff;
<span style="color: blue;">UPDATE</span> <span style="color: blue;">STATISTICS</span> stats_test4(stats_test4__col1);
</pre></div>
<p>Here's what the statistics look like... there are 47 steps and only 26 of them are in the picture below... but the last 21 are boring anyway.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUY1zIzMZlzeULMAvXVkZRhOqTPUGi6diqWWt9FaxDtthz4IP_aKK-KTdpt7kxtCFqL6WZxQq7zaGu7H5zMcoCnZUYjqYg3FB5jUOLzjWH_3R9AoDhwEDKEBLLFZtQE9Mwpb5kK8qE9F51/s1514/Picture1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="886" data-original-width="1514" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUY1zIzMZlzeULMAvXVkZRhOqTPUGi6diqWWt9FaxDtthz4IP_aKK-KTdpt7kxtCFqL6WZxQq7zaGu7H5zMcoCnZUYjqYg3FB5jUOLzjWH_3R9AoDhwEDKEBLLFZtQE9Mwpb5kK8qE9F51/w704-h412/Picture1.png" width="704" /></a></div><br /><p>Let's generate an estimated plan for a query with an IN list in the WHERE clause. These two examples are with the legacy cardinality estimator. There are 19 integer members of that IN list. You can see the implicit conversion warning on the SELECT operator below. Column col1 is varchar(66), but it is being evaluated against a list of integer values. That filter operator is where the relevant action is right now. An estimate of almost 16000 rows is fine by me.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmPBLeoTh3FBNJQ4xd4rO1l70i1dc89evj4xXUliOQVMsmlujCEV5F0KZBexXqu_brunvrSM3-dh9iypd35u1qXQny3GBciDrVW0iEIOao46f8QKsR9foqWB_7mzwQHe7tmAyUVw0m7LZ/s1572/Picture2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="433" data-original-width="1572" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmPBLeoTh3FBNJQ4xd4rO1l70i1dc89evj4xXUliOQVMsmlujCEV5F0KZBexXqu_brunvrSM3-dh9iypd35u1qXQny3GBciDrVW0iEIOao46f8QKsR9foqWB_7mzwQHe7tmAyUVw0m7LZ/w640-h176/Picture2.png" width="640" /></a></div><p>But the world is not enough. Nineteen integers? How about 20?</p><p>With 20 integers in the IN list, the estimate at the filter drops from nearly 16000 to... 1.</p><p>The downstream effects can easily be that desired hash joins become loop joins due to low row estimates.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk_EZ-RzI2AX7f7dMH78ySaY_GmZ_j7BhP71e3n7rYsr7SSIC_obZ2szs_FVj13M_GCK2ZN9xd87rFsc5V9HMekvhATlvdaYWMsCUU1hTXdRt-EY7Enar_27Bgs9jAYtrGjdrjX-eko1qK/s1576/Picture3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="1576" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk_EZ-RzI2AX7f7dMH78ySaY_GmZ_j7BhP71e3n7rYsr7SSIC_obZ2szs_FVj13M_GCK2ZN9xd87rFsc5V9HMekvhATlvdaYWMsCUU1hTXdRt-EY7Enar_27Bgs9jAYtrGjdrjX-eko1qK/w640-h178/Picture3.png" width="640" /></a></div><p>Now let's see what happens with default cardinality estimator. Let's start with a single integer IN list.</p><p>An estimate of 1000.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG0mt2QC1e5oApRGy18RMBuOfZeASXA3rWe9k1rnu-J_6IZDHOeZZXU-bnnNIATKFY64s9Tqyq_fwnjj9O9A0oPv_ybB0GBPxWBJHwoW4YV_6F6DtyC9NONFKN_FLzoxXrq4NtcLkRnbzL/s1573/Picture4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="1573" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG0mt2QC1e5oApRGy18RMBuOfZeASXA3rWe9k1rnu-J_6IZDHOeZZXU-bnnNIATKFY64s9Tqyq_fwnjj9O9A0oPv_ybB0GBPxWBJHwoW4YV_6F6DtyC9NONFKN_FLzoxXrq4NtcLkRnbzL/w640-h178/Picture4.png" width="640" /></a></div><p>And with two integers in the IN list the estimate is at 1492.47.</p><p>The decreasing rate of growth is the work of exponential backoff...</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXB5Axfa4QJzbOqu4BIItbdh-OrAUA1MCyFzN-VM28W7KG0bzRSIH74p9vbUMhJycj-x4tJKRDWYfre0nVBEow5ITMBqoETJsntCEkf0b3GAXjXge7tLY9oIgxgr9fi45jVsN8o7K8pPNP/s1013/Picture5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="281" data-original-width="1013" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXB5Axfa4QJzbOqu4BIItbdh-OrAUA1MCyFzN-VM28W7KG0bzRSIH74p9vbUMhJycj-x4tJKRDWYfre0nVBEow5ITMBqoETJsntCEkf0b3GAXjXge7tLY9oIgxgr9fi45jVsN8o7K8pPNP/w640-h178/Picture5.png" width="640" /></a></div><div><br /></div><div>With three integers in the IN list the exponential backoff is even more evident...</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuoOvvafMLKTq7prmdyDZiPO35zz3qC1oSqVK8xIAuDJnEgnua8r-BS5KuwUo2_nd6DAcOULuPpxzmtBdF_JU2D9zPNR69hCeQTWUJAxMQzVPd-V1Zf1R5JPiw8Ta9gbaPlb_ej6LbouOY/s1013/Picture6.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="285" data-original-width="1013" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuoOvvafMLKTq7prmdyDZiPO35zz3qC1oSqVK8xIAuDJnEgnua8r-BS5KuwUo2_nd6DAcOULuPpxzmtBdF_JU2D9zPNR69hCeQTWUJAxMQzVPd-V1Zf1R5JPiw8Ta9gbaPlb_ej6LbouOY/w640-h180/Picture6.png" width="640" /></a></div><div></div><br /><p></p><p>Here's 4 integers...</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNp-6LxkQ1i6XL8FxGFraLtlPi5QoQLJdQi4l-ethwNDU_UOr4BBwcK3C-iDi_l94PSiaE4yiFter5Cz22a_BdAC4kQkb9B6Dks9b5CeuA7YaFNI1M-bQBvZRHtx7jRB8AvDG-TJLeHHNz/s1011/Picture7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="282" data-original-width="1011" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNp-6LxkQ1i6XL8FxGFraLtlPi5QoQLJdQi4l-ethwNDU_UOr4BBwcK3C-iDi_l94PSiaE4yiFter5Cz22a_BdAC4kQkb9B6Dks9b5CeuA7YaFNI1M-bQBvZRHtx7jRB8AvDG-TJLeHHNz/w640-h178/Picture7.png" width="640" /></a></div><div><br /></div><div>At 5 integers in the IN list, the estimate of 1858.58 hasn't grown from the previous estimate. From here on out the estimate won't grow. </div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8It13f_tX_17wLnYrPvKa91zLWvpY2b0tx31HNR56IrX80stXFRpRhx8_FVEZMMGyX3cyRUub3wkPAUb9fIFMlewEnvo2nZaqLwTBkm7POy8jKzTaSQSNrKZquu5IGzW7vKyxbSi7Psr9/s1013/Picture8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="281" data-original-width="1013" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8It13f_tX_17wLnYrPvKa91zLWvpY2b0tx31HNR56IrX80stXFRpRhx8_FVEZMMGyX3cyRUub3wkPAUb9fIFMlewEnvo2nZaqLwTBkm7POy8jKzTaSQSNrKZquu5IGzW7vKyxbSi7Psr9/w640-h178/Picture8.png" width="640" /></a></div><br /><p>Certainly there are other details surrounding this issue. I'll be back to fill in more as I learn more. In particular on Monday I should be able to transplant what I've learned in SQL Server 2019 to some on-site 2012 and 2016 databases. That should conclusively indicate whether this is part of the current bad stew... or something I should remember for the future when I run into it again.</p><p><br /></p><p>*** Update 2020 October 10 ***</p><p>With additional testing, we learned that in SQL Server 2012 RTM this behavior did not occur: we tested up to 40 elements in the IN list and the estimate did not yet drop to 1.</p><p>I don't expect Microsoft to continue *enhancing* the legacy cardinality estimator. This could be considered a performance regression, and if the organization were interested they could push for a change. I'd expect, even if they were successful, the change to likely only appear in SQL Server 2019. They've decided rather to change their code where applicable so that literal values in OR clauses or IN lists are provided in matching data type to the relevant column, avoiding the implicit conversion and also avoiding this potentially disastrous performance implication after the cliff at 19/20 elements.</p><br />SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-60444852521195921252020-09-11T15:15:00.013-07:002020-09-24T09:45:40.607-07:00SQL Server snapshot db temporary stats - created or updated<p>For a great introduction to this topic, please see this post at SQLSkills from Joe Sack.</p><p><b>Temporary Statistics for Database Snapshots in SQL Server 2012</b></p><p><a href="https://www.sqlskills.com/blogs/joe/temporary-statistics-for-database-snapshots-in-sql-server-2012/">https://www.sqlskills.com/blogs/joe/temporary-statistics-for-database-snapshots-in-sql-server-2012/</a></p><p>Today's test instance is running SQL Server 2019 CU6. </p><p>OK, let's create a test database.</p>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="height: 18px; line-height: 125%; margin: 0px;">USE [master]</pre><pre style="height: 16px; line-height: 125%; margin: 0px;"><span style="color: blue;">GO</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">DATABASE</span> [snap_test_src]
CONTAINMENT = <span style="color: blue;">NONE</span>
<span style="color: blue;">ON</span> <span style="color: blue;">PRIMARY</span>
( NAME = N<span style="color: #a31515;">'snap_test_src'</span>, <span style="color: blue;">SIZE</span> = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB
, FILENAME = N<span style="color: #a31515;">'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\snap_test_src.mdf'</span>)
LOG <span style="color: blue;">ON</span>
( NAME = N<span style="color: #a31515;">'snap_test_src__log'</span>, <span style="color: blue;">SIZE</span> = 8192KB , MAXSIZE = 2GB , FILEGROWTH = 65536KB
, FILENAME = N<span style="color: #a31515;">'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\snap_test_src__log.ldf'</span>)
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> AUTO_CREATE_STATISTICS <span style="color: blue;">ON</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> AUTO_UPDATE_STATISTICS <span style="color: blue;">ON</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> AUTO_UPDATE_STATISTICS_ASYNC <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> ANSI_NULL_DEFAULT <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> ANSI_NULLS <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> ANSI_PADDING <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> ANSI_WARNINGS <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> ARITHABORT <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> AUTO_CLOSE <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> AUTO_SHRINK <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> CURSOR_CLOSE_ON_COMMIT <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> CURSOR_DEFAULT <span style="color: blue;">GLOBAL</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> CONCAT_NULL_YIELDS_NULL <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> NUMERIC_ROUNDABORT <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> QUOTED_IDENTIFIER <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> RECURSIVE_TRIGGERS <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> DISABLE_BROKER
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> DATE_CORRELATION_OPTIMIZATION <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> TRUSTWORTHY <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> ALLOW_SNAPSHOT_ISOLATION <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> PARAMETERIZATION <span style="color: blue;">SIMPLE</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> READ_COMMITTED_SNAPSHOT <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> HONOR_BROKER_PRIORITY <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> RECOVERY <span style="color: blue;">FULL</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> PAGE_VERIFY CHECKSUM
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> DB_CHAINING <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> FILESTREAM( NON_TRANSACTED_ACCESS = <span style="color: blue;">OFF</span> )
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> TARGET_RECOVERY_TIME = 60 SECONDS
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> DELAYED_DURABILITY = DISABLED
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> QUERY_STORE = <span style="color: blue;">OFF</span>
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> READ_WRITE
<span style="color: blue;">ALTER</span> <span style="color: blue;">DATABASE</span> [snap_test_src] <span style="color: blue;">SET</span> MULTI_USER</pre>
<pre style="height: 240px; line-height: 125%; margin: 0px;">
</pre></div><div><br /></div>
Now let's create a very boring table and put 1000 numbers into each of 2 columns.<div><br />
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">USE snap_test_src;
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> stats_test(col1 INT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>, col2 INT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>);
;<span style="color: blue;">WITH</span> num <span style="color: blue;">AS</span>
(<span style="color: blue;">SELECT</span> TOP (1000) n = ROW_NUMBER()
OVER (<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> (<span style="color: blue;">SELECT</span> <span style="color: blue;">NULL</span>))
<span style="color: blue;">FROM</span> master..spt_values)
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> stats_test
<span style="color: blue;">SELECT</span> n, 1001 - n
<span style="color: blue;">FROM</span> num;
</pre></div><div><br /></div>Because auto_create_statistics is on in this database, a little query will result in creating a statistic on col1.</div><div><br /></div>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">SELECT</span> * <span style="color: blue;">FROM</span> stats_test <span style="color: blue;">where</span> col1 < 3;
</pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVC11ockYqxzQysYjXmhpS3CX74AVoRKsGN3wZcKhwkjjRjxAg_p8dLRoRaE8aF-VxjiW9v85E7l1V4VppMMXZAcsBk_Yi0VX7M59u1nwF68k-y8fkteJt4esfFIEsx0o1z0lUhlfxErlt/s1668/Picture1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="247" data-original-width="1668" height="93" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVC11ockYqxzQysYjXmhpS3CX74AVoRKsGN3wZcKhwkjjRjxAg_p8dLRoRaE8aF-VxjiW9v85E7l1V4VppMMXZAcsBk_Yi0VX7M59u1nwF68k-y8fkteJt4esfFIEsx0o1z0lUhlfxErlt/w625-h93/Picture1.png" width="625" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div>And here is that statistic.<div><br /><!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">SELECT</span> ss.name, ss.stats_id, ss.auto_created, ss.user_created, ss.is_temporary
, sp.last_updated
<span style="color: blue;">FROM</span> snap_test_src.sys.stats ss
<span style="color: blue;">CROSS</span> APPLY snap_test_src.sys.dm_db_stats_properties(ss.object_id, ss.stats_id) sp
<span style="color: blue;">WHERE</span> ss.object_id = object_id(<span style="color: #a31515;">'stats_test'</span>);
</pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1pd2OiirU2_DGjICjQ25jmbypO56EzITPwB9Z_nu6G4LM4cXbexSYBK5cLnBqHQfDvZzfPF56Xkm22pE-4i07KPwO19uxAwlFY4nImkHOiIqeZv1kMXbUnUEGM3tN5NopVQTz8MFkJbk/s1668/Picture2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="237" data-original-width="1668" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1pd2OiirU2_DGjICjQ25jmbypO56EzITPwB9Z_nu6G4LM4cXbexSYBK5cLnBqHQfDvZzfPF56Xkm22pE-4i07KPwO19uxAwlFY4nImkHOiIqeZv1kMXbUnUEGM3tN5NopVQTz8MFkJbk/w625-h88/Picture2.png" width="625" /></a></div><br /><div>Now let's make that statistic stale 😆 A thousand more numbers oughtta do it.</div><div> </div><div><!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 16.25px; margin-bottom: 0px; margin-top: 0px;">USE snap_test_src;
;<span style="color: blue;">WITH</span> num <span style="color: blue;">AS</span>
(<span style="color: blue;">SELECT</span> TOP (1000) n = ROW_NUMBER()
OVER (<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> (<span style="color: blue;">SELECT</span> <span style="color: blue;">NULL</span>))
<span style="color: blue;">FROM</span> master..spt_values)
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> stats_test
<span style="color: blue;">SELECT</span> n, 1001 - n
<span style="color: blue;">FROM</span> num;
</pre></div><div><br /></div></div><div>All right. Got a table with 2000 rows and a single auto-created statistics object that's now stale.</div><div>Let's create a snapshot database!!</div><div><br /></div>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">CREATE</span> <span style="color: blue;">DATABASE</span> snap_test <span style="color: blue;">ON</span>
( NAME = snap_test_src,
FILENAME = <span style="color: #a31515;">'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\snap_test_src.ss'</span>)
<span style="color: blue;">AS</span> SNAPSHOT <span style="color: blue;">OF</span> snap_test_src;
</pre></div><br /></div><div>OK... now for a query in the snapshot database...</div><div><br /></div><div><!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">USE snap_test
<span style="color: blue;">SELECT</span> * <span style="color: blue;">FROM</span> stats_test
<span style="color: blue;">WHERE</span> col1 < 3 <span style="color: blue;">AND</span> col2 > 998;
</pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Zh32vW3gdH8dwH9bWOJxfu9bilQwmzFsykLhpCoiqYMm6HR3Wl7u0Gr3jXLbTAZQFVmplUNlLDkQKZ9MHDqHrXrLRPxzeO_06UAYL-pon7MNknwM2OrkH_NQ3rHeeFAtmALz5LWYwI7N/s1668/Picture4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="265" data-original-width="1668" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Zh32vW3gdH8dwH9bWOJxfu9bilQwmzFsykLhpCoiqYMm6HR3Wl7u0Gr3jXLbTAZQFVmplUNlLDkQKZ9MHDqHrXrLRPxzeO_06UAYL-pon7MNknwM2OrkH_NQ3rHeeFAtmALz5LWYwI7N/w625-h100/Picture4.png" width="625" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div>Let's check those stats... now there are two stats and both are marked as temporary.</div><div><br /></div>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;"><span style="color: blue;">SELECT</span> ss.name, ss.stats_id, ss.auto_created, ss.is_temporary
, sp.last_updated
<span style="color: blue;">FROM</span> snap_test.sys.stats ss
<span style="color: blue;">CROSS</span> APPLY snap_test.sys.dm_db_stats_properties(ss.object_id, ss.stats_id) sp
<span style="color: blue;">WHERE</span> ss.object_id = object_id(<span style="color: #a31515;">'stats_test'</span>);
</pre></div>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9G2Mo70tcN3nrsADJMq_YyrBdk_V0UNs9IgX2FYaSH6ijYyhImvXEpeyOqfTLNRdeKSUqMz8Pg1tm5M_re78XUUNHW1R8zh74vPdEZ34QEaPdpWcUnw8_Dr0KfZyySc1Utku8u5bFPLW0/s1668/Picture5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="209" data-original-width="1668" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9G2Mo70tcN3nrsADJMq_YyrBdk_V0UNs9IgX2FYaSH6ijYyhImvXEpeyOqfTLNRdeKSUqMz8Pg1tm5M_re78XUUNHW1R8zh74vPdEZ34QEaPdpWcUnw8_Dr0KfZyySc1Utku8u5bFPLW0/w625-h79/Picture5.png" width="625" /></a></div><br /><div>Let's take another look, and compare the stats in the source database and the snapshot database.</div><div><br /></div><div><div>(*** update 2020 September 24 ***</div><div>this little trick where I reference dm_db_stats_properties in a different database by adding the database name to the reference works in SQL Server 2019 CU6. But it didn't work on a SQL Server 2016 instance I tried the same trick on - looks like both references to the function resolved to the database context my query was in.)</div></div><div><br /></div>
<!--HTML generated using hilite.me--><div style="background: rgb(255, 255, 255); border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0px;">USE snap_test
<span style="color: blue;">SELECT</span> ss.name, source_rows = sp2.<span style="color: blue;">rows</span>, source_sample = sp2.rows_sampled
, snap_rows = sp.<span style="color: blue;">rows</span>, snap_sample = sp.rows_sampled
<span style="color: blue;">FROM</span> snap_test.sys.stats ss
<span style="color: blue;">CROSS</span> APPLY snap_test.sys.dm_db_stats_properties(ss.object_id, ss.stats_id) sp
<span style="color: blue;">OUTER</span> APPLY snap_test_src.sys.dm_db_stats_properties(ss.object_id, ss.stats_id) sp2
<span style="color: blue;">WHERE</span> ss.object_id = object_id(<span style="color: #a31515;">'stats_test'</span>);
</pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ES8a8P1R5YFekMW8ervivDUL0m4lI2r4Jv9vFtPVweqhXyEEPiTPp0vI9pPaWaZfnc1iHln7YlOrA6YdHms_sNAOu-Ntsqx4Tbfots232sZmjovFcqUh3EMfSWrgL6OxEWCvS9QD14gF/s1668/Picture6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="159" data-original-width="1668" height="61" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2ES8a8P1R5YFekMW8ervivDUL0m4lI2r4Jv9vFtPVweqhXyEEPiTPp0vI9pPaWaZfnc1iHln7YlOrA6YdHms_sNAOu-Ntsqx4Tbfots232sZmjovFcqUh3EMfSWrgL6OxEWCvS9QD14gF/w625-h61/Picture6.png" width="625" /></a></div><div><br /></div><div><br /></div>The source database and the snapshot database both have a stats_test table with 2000 rows, of course. But the source database has only a statistic on col1, not col2. And the col1 statistic was last updated when the table had 1000 rows. The snapshot database has stats on col1, also. They've been updated - as a temporary statistic - with the row count of 2000 and the sample of all 2000 rows. That was current as of the time of the snap.</div><div><br /></div><div> Consider a snapshot database which is created daily. The purpose is to provide analytics reporting access while maintenance or data loads take place in the source database. In the snapshot database, analytics reports have no locking concerns from the activity in the underlying source database. And the temporary statistics provided by SQL Server, combined with the statistics inherited from the source database, provide a lot of information to the optimizer for query plan selection.</div><div><br /></div><div>But what if significant fact tables are queried in the snapshot and leave a situation like col2 in stats_test? A column which generates an auto-created stat in the snapshot, but never gets a statistic created in the source database. Each day, the cost of creating that statistic and every statistic like it will be paid as part of the workload. Even if the underlying table is a now-stable dimension. <br /><div><br /></div><div>If a snapshot database is being used to provide reporting access, it may be valuable to check for temporary statistics that are perpetually being created - or updated - in the snapshot. In some cases, creating or updating the statistic in the underlying source database may provide a benefit by eliminating redundant work.</div><div><br /></div>
q</div><div><br /></div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-47790924608492521112020-04-17T07:44:00.001-07:002020-04-19T20:44:31.153-07:00SQL Server 2017 cu17 Columnstore Workload OOMs Part 2: Whoever Smelt It, Dealt It?<h3>
<i>This blog post is under construction...</i></h3>
This blog post is part of a series started yesterday with the post linked immediately below. <b><br /></b><br />
<b>SQL Server 2017 cu17 ColumnStore Workload OOMs Part 1</b><br />
<a href="https://sql-sasquatch.blogspot.com/2020/04/sql-server-2017-cu17-columnstore.html">https://sql-sasquatch.blogspot.com/2020/04/sql-server-2017-cu17-columnstore.html</a><br />
<br />
<br />
<br />
Error investigation can be informed by one of two paradigms:<br />
I think of the first paradigm as "whoever smelt it, dealt it."<br />
The second paradigm is "the bearer of bad news."<br />
Sometimes to reach the correct conclusion, the events and surrounding timeline must be examined from both viewpoints. <br />
<br />
<h3>
<b>Whoever Smelt It, Dealt It</b></h3>
This article provided some needed laughter yesterday when I read it. Its not directly relevant to the matter at hand... but its worth a chuckle.<br />
<a href="https://www.blogger.com/u/1/goog_151382909"></a><br />
<a href="https://www.blogger.com/u/1/goog_151382909"><b><br />We Asked Scientists Whether He Who Smelt It Really Dealt It</b></a><br />
<a href="https://www.vice.com/en_us/article/ypa5x5/we-asked-scientists-whether-he-who-smelt-it-really-dealt-it">https://www.vice.com/en_us/article/ypa5x5/we-asked-scientists-whether-he-who-smelt-it-really-dealt-it</a><br />
<br />
What the <i>heck </i>does this sophomoric idea have to do with OOMs, or any error type?<br />
<br />
Consider this simplistic example. The error is a direct result of the action by <i>this session</i>. This session's action alone was sufficient to warrant the "divide by zero" error message.<br />
This session <i>smelt</i> the error message, because this session <i>dealt</i> the divide by zero.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwEix7b2Uvk6nlhcJlLYtkGIElPdV4Xm_ZTu8gKi3fKGjUUGvLCsBLVqB4V9l9Gu3nZr8lWjkZFM5OguJLzh_JESTNI8NHVYCN3_6ePXH1E8iZq5uP44iJB47dG7zhCs3mN5bvHNf52ZwH/s1600/Picture11.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="439" data-original-width="1230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwEix7b2Uvk6nlhcJlLYtkGIElPdV4Xm_ZTu8gKi3fKGjUUGvLCsBLVqB4V9l9Gu3nZr8lWjkZFM5OguJLzh_JESTNI8NHVYCN3_6ePXH1E8iZq5uP44iJB47dG7zhCs3mN5bvHNf52ZwH/s1600/Picture11.png" /></a></div>
<br />
As it relates to OOMs, consider the OOM described in this blog post.<br />
<b>SQL Server 2019 Scalar UDF inlining - OOM in some cases</b><br />
<a href="https://sql-sasquatch.blogspot.com/2019/11/sql-server-2019-udf-inlining-oom-in.html">https://sql-sasquatch.blogspot.com/2019/11/sql-server-2019-udf-inlining-oom-in.html</a><br />
<br />
A single session in isolation executing a query with an ugly UDF that triggers UDF inlining is sufficient to consume enough [Optimizer Memory] to result in the OOMs described in the post. Yes, its a (fixed in CU2) bug, but the activity by that individual session realizes the risk presented by the bug. That session <i><b>smelt</b></i> it by way of the OOM, after that session <b><i>dealt</i></b> it by using an ugly inlined UDF.<br />
<br />
OK. Now let's focus on the OOMs I'm currently dealing with. In SQL Server, if an OOM can be properly described as <b>"whoever smelt it, dealt it" </b>the memory activity must be attributable to the session that received the error and only that session.<br />
<br />
One way for that to be the case is for that session to be running in isolation - no other user sessions on the instance. That's not the case in observations of the OOMs I'm concerned with. Each occurrence of these OOMs happens to be when there are multiple concurrent user sessions.<br />
<br />
Another way for the memory activity to be attributable to the specific session that received the error is if the memory type is specifically and solely allocated to the session. Connection memory works like that. Connection memory is within [Total Server Memory] but individual sessions have private access to small chunks of it. Optimizer memory works that way, too. So, too, does the used portion of query memory grants. All of the memory in [Total Server Memory] that can be individually attributed to sessions is within [Stolen Server Memory]. But not all [Stolen Server Memory] can be individually attributed to sessions. (For example, consider the plan cache within [Stolen Server Memory]. Although an individual session inserts a plan into cache, while the plan is cached other sessions can use it. And a cached plan can stay in cache after the session that originally inserted it has ended.)<br />
<br />
It just so happens I have some graphs. Each of the red vertical lines below is an OOM. Usually in a graph like this I have [Stolen Server Memory] at the top of the stacked graph, with [Free Memory] and [Database Cache Memory] below it. Like this...<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRd2zEfeQ9R3PuuqyaS8krM4J7h752ioi3vDZlVF_W8Bwrp-6Arys_reFsfxSJDV_CfBDbi3PrLUYHE8uAWwcQuUMIgZQuRpGnbmmAbdo760SUKYfTt0CYF7eBjYAamwc1-N3PSzH_ySUb/s1600/Picture12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRd2zEfeQ9R3PuuqyaS8krM4J7h752ioi3vDZlVF_W8Bwrp-6Arys_reFsfxSJDV_CfBDbi3PrLUYHE8uAWwcQuUMIgZQuRpGnbmmAbdo760SUKYfTt0CYF7eBjYAamwc1-N3PSzH_ySUb/s1600/Picture12.png" /></a></div>
<br />
But since I want to focus on [Stolen Server Memory] I want it at the bottom of the stack for now, like this...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4SRQXK2ThDpNa40ZNX-ETBl1ECheZb-4sEB_4KchmSoum7riFEW-HWblbmhXt9WU0VSoerUl7Mt9bYcRjLoJuw40OSRV3bAeSk-b42IBV4F6Jy-59QzqjSKa16cH9p4c-UNnBA-CsNHpC/s1600/Picture13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4SRQXK2ThDpNa40ZNX-ETBl1ECheZb-4sEB_4KchmSoum7riFEW-HWblbmhXt9WU0VSoerUl7Mt9bYcRjLoJuw40OSRV3bAeSk-b42IBV4F6Jy-59QzqjSKa16cH9p4c-UNnBA-CsNHpC/s1600/Picture13.png" /></a></div>
<br />
<br />
In the workloads I am concerned with, the largest portion
of individually attributable [Stolen Server Memory] is the amount of
granted query memory that is used for sort/hash/columnstore compression
at any given time. If all user workload groups are associated with the
Default Resource Pool, that amount is [\SQLServer:Memory Manager\Granted
Workspace Memory (KB)] - [\SQLServer:Memory Manager\Reserved Server
Memory (KB)]. If user Resource Pools other than Default during the
timeperiod of concern, the information should be gathered from
sys.dm_exec_query_memory_grants and/or
sys.dm_exec_query_resource_semaphores to account for the total granted
and total reserved memory.<br />
<br />
Fortunately for me, on this day the only resource pools present were Default and Internal. A little bit easier path.<br />
<br />
The next graph is the amount of granted memory (not necessarily already used), with [\SQLServer:Memory Manger\Total Server memory (KB)] included on the same graph for scale.<br />
<br />
First of all, I'll point out that the total granted memory is not very high compared to the target server memory. Also, the yellow box indicates high points for granted memory that occurred without errors, while errors occurred later with lower levels of granted memory. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6h6oQA9udgkhMKhNkrVpod3kjEuc2djDahYamgUSkpopSIKn1wNgz6E7XpAN-isz0mMgAcGkSNVneBCNJSPza7F-9wsEll9aINx-DFDb0tPmK47TCfpuG9TDkwHO3AYnHH4iHbJoCkFCt/s1600/Picture17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6h6oQA9udgkhMKhNkrVpod3kjEuc2djDahYamgUSkpopSIKn1wNgz6E7XpAN-isz0mMgAcGkSNVneBCNJSPza7F-9wsEll9aINx-DFDb0tPmK47TCfpuG9TDkwHO3AYnHH4iHbJoCkFCt/s1600/Picture17.png" /></a></div>
<br />
Let's zoom in a little for better visibility. This graph is granted memory - but it doesn't indicate how much of the granted memory is used.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgePmKVMMEg19FAzP4o8JoFBgvhu7DoUQjCYvF5HMVcL69UqMDCYYjv76sQbSQXTSEYiYUsfdJHkW36tvhGuVUZeOhlyvvFzHqX_-6fxIMQAm3wV-HzsliOuyi3o2Vc1OdswzsAalCcmuV/s1600/Picture18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgePmKVMMEg19FAzP4o8JoFBgvhu7DoUQjCYvF5HMVcL69UqMDCYYjv76sQbSQXTSEYiYUsfdJHkW36tvhGuVUZeOhlyvvFzHqX_-6fxIMQAm3wV-HzsliOuyi3o2Vc1OdswzsAalCcmuV/s1600/Picture18.png" /></a></div>
<br />
Because on the Default resource pool was in play, layering the reserved memory in front of granted memory gives an idea of the used query memory. In the graph below, the exposed dark green is the portion of [\SQLServer:Memory Manager\Granted Workspace Memory (KB)] which is used. <br />
<br />
<br />
<br />
well, well...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHb8myzwXFr6Yd9GuEqFSk15GmLWwzq1MXIiERexiZJ_-k-haIiDlAB61vwaCNkW-I6WbPj-XP85CNA1I-V34hZ5xxQPgPFPdm0mkqmMEenVkD5CbCLyRQt1pbs1yQwvVChuV_e1Q8T7PD/s1600/Picture19.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHb8myzwXFr6Yd9GuEqFSk15GmLWwzq1MXIiERexiZJ_-k-haIiDlAB61vwaCNkW-I6WbPj-XP85CNA1I-V34hZ5xxQPgPFPdm0mkqmMEenVkD5CbCLyRQt1pbs1yQwvVChuV_e1Q8T7PD/s1600/Picture19.png" /></a></div>
<br />
<br />
well, well....<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIpO0a5TXSu7_GRqQ-gdVui6CHclJqEbkkPZICwYweWlCuBISrVGFROnbnUId9ljUME54MHiXxEn-z-TGbnS1VwHxIMOLm2FWGQACfrGwMms304vNr0Vw3FHKerGUrqeaniMB5QUAleA20/s1600/Picture20.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIpO0a5TXSu7_GRqQ-gdVui6CHclJqEbkkPZICwYweWlCuBISrVGFROnbnUId9ljUME54MHiXxEn-z-TGbnS1VwHxIMOLm2FWGQACfrGwMms304vNr0Vw3FHKerGUrqeaniMB5QUAleA20/s1600/Picture20.png" /></a></div>
<br />
<br />
<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">Date,Source,Severity,Message
12/21/2019 03:15:35,spid83,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670319<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:17:51,spid79,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670319<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:24:14,spid51,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670319<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:36:41,spid73,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670319<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:43:01,spid89,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670319<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:47:00,spid55,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670319<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:50:43,spid57,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34670740<nl/>Simulated 166692<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 0
12/21/2019 03:54:08,spid73,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639426<nl/>Simulated 250762<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 03:56:07,spid73,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639426<nl/>Simulated 250762<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 03:58:37,spid73,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639426<nl/>Simulated 250762<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 04:00:43,spid52,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639426<nl/>Simulated 250762<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 04:03:27,spid70,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639437<nl/>Simulated 250718<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 04:05:45,spid74,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639437<nl/>Simulated 250718<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 04:09:38,spid70,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 34639440<nl/>Simulated 250706<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 04:15:57,spid107,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 21670985<nl/>Simulated 2875695<nl/>Simulation Benefit 0<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
12/21/2019 04:23:20,spid94,Unknown,Memory Broker Clerk (Column store object pool) Pages<nl/>---------------------------------------- ----------<nl/>Total 21660293<nl/>Simulated 2892211<nl/>Simulation Benefit 0.0000000000<nl/>Internal Benefit 0<nl/>External Benefit 0<nl/>Value Of Memory 0<nl/>Periodic Freed 0<nl/>Internal Freed 84070
</pre>
</div>
<br />
well, well...<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">Memory Broker Clerk (Column store object pool)
Time Pages kb
03:15:35 34670319 277362552
03:17:51 34670319 277362552
03:24:14 34670319 277362552
03:36:41 34670319 277362552
03:43:01 34670319 277362552
03:47:00 34670319 277362552
03:50:43 34670740 277365920
03:54:08 34639426 277115408
03:56:07 34639426 277115408
03:58:37 34639426 277115408
04:00:43 34639426 277115408
04:03:27 34639437 277115496
04:05:45 34639437 277115496
04:09:38 34639440 277115520
04:15:57 21670985 173367880
04:23:20 21660293 173282344
</pre>
</div>
<br />
a haw haw haw...SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-86475485728937543152020-04-16T11:18:00.001-07:002020-04-16T21:03:47.372-07:00SQL Server 2017 cu17 ColumnStore Workload OOMs Part 1A support ticket concerning this behavior is open with Microsoft. SQL Server 2017 CU20 has not been evaluated for this behavior. Although no published fix included in CU20 appears to address this behavior, it's possible additional affects of the documented fixes address the behavior. Its also possible an undocumented CU20 fix addresses this behavior. However, as CU20 has never been brought up in the context of the support ticket, and - as can be seen at the end of this blog post - Microsoft has previously documented fixes to similar behavior, I currently believe this behavior is likely to exist in SQL Server 2017 CU20 as well as CU17, CU18, and CU19.<br />
<br />
Let's start the story with a SQL Server 2017 CU17 service restart on December 20, 2019.<br />
<br />
All of the graphs below unless otherwise noted are from perfmon, captured in 30 second increments. <br />
<br />
It's a VMware VM, with Windows Server 2016 as the operating system. Global startup trace flags 4199 (optimizer hotfixes), 4139 (quickstats histogram amendments), 3226 (no errorlog messages for successful t-log backups). Nothing too surprising there.<br />
<br />
This vm has 56 vcpu and 620 GB vRAM.<br />
<br />
[Max Server Memory] is set to 590000 mb.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">12/20/2019 11:03:24,spid8s,Unknown,SQL Server shutdown has been initiated
12/20/2019 11:03:24,spid8s,Unknown,SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.
12/20/2019 11:03:25,Server,Unknown,Microsoft SQL Server 2017 (RTM-CU17) (KB4515579) - 14.0.3238.1 (X64) <nl/> Sep 13 2019 15:49:57 <nl/> Copyright (C) 2017 Microsoft Corporation<nl/> Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)
12/20/2019 11:03:25,Server,Unknown,UTC adjustment: -6:00
12/20/2019 11:03:25,Server,Unknown,(c) Microsoft Corporation.
12/20/2019 11:03:25,Server,Unknown,All rights reserved.
12/20/2019 11:03:25,Server,Unknown,Server process ID is 12764.
12/20/2019 11:03:25,Server,Unknown,System Manufacturer: 'VMware<c/> Inc.'<c/> System Model: 'VMware Virtual Platform'.
12/20/2019 11:03:25,Server,Unknown,Authentication mode is MIXED.
12/20/2019 11:03:25,Server,Unknown,Logging SQL Server messages in file 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Log\ERRORLOG'.
12/20/2019 11:03:25,Server,Unknown,The service account is '***redacted***'. This is an informational message; no user action is required.
12/20/2019 11:03:25,Server,Unknown,Registry startup parameters: <nl/> -d C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\master.mdf<nl/> -e C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Log\ERRORLOG<nl/> -l C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\mastlog.ldf<nl/> -T 4199<nl/> -T 4139<nl/> -T 3226
12/20/2019 11:03:25,Server,Unknown,Command Line Startup Parameters:<nl/> -s "MSSQLSERVER"</pre>
<pre style="line-height: 125%; margin: 0;">12/20/2019 11:03:25,Server,Unknown,SQL Server detected 28 sockets with 2 cores per socket and 2 logical processors per socket<c/> 56 total logical processors; using 56 logical processors based on SQL Server licensing. This is an informational message; no user action is required.</pre>
</div>
<br />
When [Max Server Memory] can be attained by SQL Server, [Target Server Memory] will be equal to [Max Server Memory]. If memory conditions external to SQL Server make [Max Server Memory] unattainable, [Target Server Memory] will be adjusted downward to an attainable value. As workload is placed on the system, [Total Server Memory] grows toward [Target Server Memory]. That's typical, expected behavior.<br />
<br />
In this case, the story stays boring until after the following midnight. There wasn't enough workload to drive much growth of [Total Server Memory] until about 2:15 am, after which [Total Server Memory] grew fairly rapidly. [Total Server Memory] reached a plateau between 3:00 am and 3:15 am, and then stepped slightly down later. [Target Server Memory] was never attained. That's curious.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-LQ9J9qS2Zaui5UKVa-0D53I9bVrri5Wr1vMJ06gn2Q13rRKuONh_dEenvFUzsby6uytoXSq7FlCmSEBCGLTr5khix6wc6cwitrgnYJzQfuqv7Z3yDQR8Dw6Fi4mN3Ulk-3-aQtU77weQ/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-LQ9J9qS2Zaui5UKVa-0D53I9bVrri5Wr1vMJ06gn2Q13rRKuONh_dEenvFUzsby6uytoXSq7FlCmSEBCGLTr5khix6wc6cwitrgnYJzQfuqv7Z3yDQR8Dw6Fi4mN3Ulk-3-aQtU77weQ/s1600/Picture1.png" /></a></div>
<br />
[Total Server Memory] is the sum of [Database Cache Memory], [Free Memory], and [Stolen Memory] for the instance. Here's a graph of those three memory categories over the same timeperiod.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUrI-HVUNVFeTw93th1KAIOHcsEJ6PTPqkm3F1ZDyeWU5hBn2kRMc5k0PMzevtKOn1Ks-TyQSo4fhLaevkFVjDotF7yS83abfoqUFgNDpkhYHgglRoDQuas1cv4tQ75NSdu6Tz-IS5jmmg/s1600/Picture2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUrI-HVUNVFeTw93th1KAIOHcsEJ6PTPqkm3F1ZDyeWU5hBn2kRMc5k0PMzevtKOn1Ks-TyQSo4fhLaevkFVjDotF7yS83abfoqUFgNDpkhYHgglRoDQuas1cv4tQ75NSdu6Tz-IS5jmmg/s1600/Picture2.png" /></a></div>
<br />
It really is quite curious that [Total Server Memory] never reached [Target Server Memory] and in fact eventually backed *farther off* from [Target Server Memory]. If external factors made [Target Server Memory] unattainable, I expect [Target Server Memory] to be adjusted downward. But that didn't happen.<br />
<br />
I'm a very curious guy, but I don't spend days worth of time creating and staring at graphs of the same short timeperiod simply out of curiosity. This morning timeperiod encompassed 16 SQL Server out-of-memory errors. I want to be able to diagnose them, and find out when the contributing behavior was introduced, in order to advise organizations that are planning SQL Server upgrades - or that fall prey to the type of OOMs experienced in this instance.<br />
<br />
I'm going to tighten the timeframe for the remaining graphs to 2:30 am to 5:00 am, in order for the individual errors to be discernable on the graphs.<br />
<br />
There are the 16 OOMs, each marked with a vertical red line in the graph below. Interestingly, they occur during the plateau of [Total Server Memory]. But... SQL Server is still a long way off from reaching [Target Server Memory]... why not just grow SQL Server's memory share?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyQ6wlZ-yqeJuwj1RfX_mWafYcVZE_kfaBlIf2Jxt0-w99bYVLs14H-lwd0aTgmGrvzf_lU9iXjuMhcpVbUXX-rIokl3oCa3gbpf_uU-WVZG8jiAzmMe63Eu30lewazagdI29hlBfWRuoI/s1600/Picture3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="470" data-original-width="1403" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyQ6wlZ-yqeJuwj1RfX_mWafYcVZE_kfaBlIf2Jxt0-w99bYVLs14H-lwd0aTgmGrvzf_lU9iXjuMhcpVbUXX-rIokl3oCa3gbpf_uU-WVZG8jiAzmMe63Eu30lewazagdI29hlBfWRuoI/s1600/Picture3.png" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
As I mentioned before, if external memory conditions made [Target Server Memory] unattainable, I expect [Target Server Memory] to be lowered. That didn't happen, hinting that sufficient memory was still present for [Total Server Memory] to grow.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
What does perfmon have to say about [Available Memory]? Does it corroborate my conclusion that SQL Server *could have* continued to grow [Total Server Memory]? Sure 'nuf. At the time of *all 16* of the OOMs, there was over 100GB of [Available Memory], nicely divided across the 2 vNUMA nodes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_sx39665DqiNbOfXybQkf2iRQHB9wA1Wwl1A9aRDJrz6xkPSEFOGccnejqfEYGkFqo4RVb246bhwHaJko84coHjPE9J8_bbowm8CcA14tz0tjN89jHm5_pPdRhEcvb9IsOFFczsXePeBu/s1600/Picture4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_sx39665DqiNbOfXybQkf2iRQHB9wA1Wwl1A9aRDJrz6xkPSEFOGccnejqfEYGkFqo4RVb246bhwHaJko84coHjPE9J8_bbowm8CcA14tz0tjN89jHm5_pPdRhEcvb9IsOFFczsXePeBu/s1600/Picture4.png" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
Those familiar with my memory graphs on this blog and in my twitter activity as @sqL_handLe may note that I'm usually much more preoccupied with [Free & Zero Page List Memory] than with [Available Memory]. Depending on the memory consumers and activity on a VM, there may be considerable memory accounted as [Available Memory] which is not [Free & Zero Page List Memory]. If a memory allocation for a consumer must be zeroed before handed over, it's gotta come from [Free & Zero Page List Memory] (which I often affectionately call FZPL).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Thankfully in this case, FZPL is nearly all of [Available Memory] and is similarly well-divided between the vNUMA nodes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEkPnC-cWgXBHoZVU4whE-UzEnVKtH2_E9nqpduxjwMU4ucL6JYReBYsngpU2qDeLXb9T4VnuvGD2hn8dYriEnRbtEyg9hRoo30TpSiri4_4vAZxMN7ArUdENDEzXWlWvoLFv7ZykGbTSw/s1600/Picture5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEkPnC-cWgXBHoZVU4whE-UzEnVKtH2_E9nqpduxjwMU4ucL6JYReBYsngpU2qDeLXb9T4VnuvGD2hn8dYriEnRbtEyg9hRoo30TpSiri4_4vAZxMN7ArUdENDEzXWlWvoLFv7ZykGbTSw/s1600/Picture5.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So [Available Memory] and [Free & Zero Page List Memory] are plentiful and balanced between the two vNUMA nodes. Can we see how much of SQL Server [Total Server Memory] is on each of the SQLOS nodes? Yup. Meet my friend [Total Node Memory]. Equally balanced across the two SQLOS nodes.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-uLmgznt4OjMmruAKlF-Aq0c6Q3vEqHN7KorN0YjFlztEIN3T5JcTSQoACMAnp-SUD1-0BeaoHnh2mv5D-dulRHH8IYVes4NUADhnH0969xfTP8q8wHXymEUDlcpm1QJRF8emukjTKy-r/s1600/Picture6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-uLmgznt4OjMmruAKlF-Aq0c6Q3vEqHN7KorN0YjFlztEIN3T5JcTSQoACMAnp-SUD1-0BeaoHnh2mv5D-dulRHH8IYVes4NUADhnH0969xfTP8q8wHXymEUDlcpm1QJRF8emukjTKy-r/s1600/Picture6.png" /></a></div>
<br />
In fact, the categories of [Database], [Stolen], and [Free] SQLOS memory can be tracked at SQLOS node level, too. Pretty nice balance on nodes 000 and 001.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEpcAyJdo5w82elBxsdHpWYjDGZHQTqRwddiGTxG-lDcZ0JSo9sfG4_kr2lE9WfRKruHeCwGy0IvbSMhKDOxD_Yicf2CJBuN3TGxV0GL8itLmwamoouwd-BZxK0Ez8JQIKy3MjFytCbb9z/s1600/Picture7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEpcAyJdo5w82elBxsdHpWYjDGZHQTqRwddiGTxG-lDcZ0JSo9sfG4_kr2lE9WfRKruHeCwGy0IvbSMhKDOxD_Yicf2CJBuN3TGxV0GL8itLmwamoouwd-BZxK0Ez8JQIKy3MjFytCbb9z/s1600/Picture7.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP2Ee9lMbXmsT3Rd13NlkYjuPqPFUGsrzfJCzRZKEDGe-0GccMcyggJ_6e9KDN0NXEMspDNXU9tYtBbCEdytyNzEPQHzUWiwjS_K5JOZk_FyIe6WlmRdQboiqpgi5C5Kdgu2ecCo50J94F/s1600/Picture8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="472" data-original-width="1402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP2Ee9lMbXmsT3Rd13NlkYjuPqPFUGsrzfJCzRZKEDGe-0GccMcyggJ_6e9KDN0NXEMspDNXU9tYtBbCEdytyNzEPQHzUWiwjS_K5JOZk_FyIe6WlmRdQboiqpgi5C5Kdgu2ecCo50J94F/s1600/Picture8.png" /></a></div>
<br />
Extracted from the SQL Server errorlog, here are the 16 OOMs from that night.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">12/21/2019 03:15:27,spid83,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:17:43,spid79,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 8
12/21/2019 03:24:02,spid51,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 8
12/21/2019 03:36:37,spid73,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:42:54,spid89,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:46:54,spid55,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:50:36,spid57,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:53:56,spid73,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:55:57,spid73,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 03:58:28,spid73,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 04:00:39,spid52,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 04:03:14,spid70,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 16
12/21/2019 04:05:34,spid74,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
12/21/2019 04:09:26,spid70,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 24
12/21/2019 04:15:44,spid107,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 8
12/21/2019 04:23:14,spid94,Unknown,Failed to allocate BUFs: FAIL_BUFFER_ALLOCATION 1
</pre>
</div>
<br />
So here's the summary of the story: 16 OOMs occurred in one night. The instance hadn't reached [Target Server Memory], and there doesn't seem to be a good reason for [Total Server Memory] to *not* have grown rather than incur an OOM. There was over 50GB of FZPL per vNUMA node, for goodness sake! Memory use seems to have been quite evenly divided between the vNUMA nodes.<br />
<br />
For the last two OOMs, at 4:15 am and 4:23 am, there was even a large amount of [Free] SQLOS memory within [Total Server Memory]. And there was plenty of [Free] SQLOS memory on either of the two SQLOS nodes!! The possibility of SQLOS [Total] memory growth at the time of any of the 16 OOMs, and the additional presence of significant SQLOS [Free] memory on either SQLOS node during the last 2 OOMs fully convinces me that this is a bug. (Well, that and not having seen this type of behavior in any of the SQL Server 2016 or 2019 versions I've worked with.)<br />
<br />
When the dust clears from this, I think a bug similar to this one from SQL Server 2017 cu10 will be found. I am upset at myself that in 5 months of staring down *this* behavior, I haven't been able to marshal the resources to get *this* bug properly identified so it can be corrected.<br />
<br />
FIX: Out of memory error occurs even when there are many free pages in SQL Server<br />
<a href="https://support.microsoft.com/en-us/help/4347088/fix-out-of-memory-error-when-there-are-free-pages-in-sql-server">https://support.microsoft.com/en-us/help/4347088/fix-out-of-memory-error-when-there-are-free-pages-in-sql-server</a><br />
<br />
The fix referenced above, kb4347088, is found in SQL Server 2017 cu10 and SQL Server 2016 sp2 cu3. The problem described in this blog post shares some similarities, and has been observed on SQL Server 2017 cu17, cu18, and cu19. As of 2020 April 16 this bug has not been identified and there is no fix imagined or planned.<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />
<br />
<br />SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-79377428348974759382019-12-15T00:58:00.000-08:002019-12-18T09:24:39.408-08:00Interpreting SQL Server 2019 DBCC MEMORYSTATUS output -- Part 1Recently someone asked me for help interpreting DBCC MEMORYSTATUS output. And it's taken me too doggone long to start answering their questions. Sorry - I'll start with this and keep going.<br />
<br />
In response to certain OOM conditions, SQL Server will automatically log DBCC MEMORYSTATUS output to the error log. Here I'll look at output from the command run via a task scheduler script on a 5 minute schedule. <br />
<br />
One issue with the excerpt of the output below is the lack of units. <br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="font-weight: bold;">start</span> Fri 12/13/2019 14:40:00.80
Process/<span style="font-weight: bold;">System</span> Counts Value
<span style="font-style: italic;">---------------------------------------------------- --------------------</span>
Available Physical Memory 250846224384
Available Virtual Memory 136302950027264
Available Paging File 298663870464
Working <span style="font-weight: bold;">Set</span> 13835464704
Percent <span style="font-weight: bold;">of</span> <span style="font-weight: bold;">Committed</span> Memory <span style="font-weight: bold;">in</span> WS 99
Page Faults 6876485
<span style="font-weight: bold;">System</span> physical memory high 1
<span style="font-weight: bold;">System</span> physical memory low 0
Process physical memory low 0
Process virtual memory low 0
~~~~~
<span style="font-weight: bold;">end</span> Fri 12/13/2019 14:40:06.62
</pre>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Here's some info from perfmon.<br />
<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" style="width: 610px;"><colgroup><col style="mso-width-alt: 14189; mso-width-source: userset; width: 320pt;" width="420"></col> <col span="3" style="width: 48pt;" width="64"></col> </colgroup><tbody>
<tr height="22" style="height: 16.5pt;"> <td class="xl65" height="22" style="height: 16.5pt; width: 320pt;" width="420">Time</td> <td align="right" class="xl65" style="border-left: none; width: 48pt;" width="64">14:40:01</td> <td align="right" class="xl65" style="border-left: none; width: 48pt;" width="64">14:40:06</td> <td align="right" class="xl65" style="border-left: none; width: 48pt;" width="64">14:40:11</td> </tr>
<tr height="22" style="height: 16.5pt;"> <td class="xl66" height="22" style="border-top: none; height: 16.5pt;">\NUMA Node Memory(_Total)\Total MBytes</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">952319</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">952319</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">952319</td> </tr>
<tr height="22" style="height: 16.5pt;"> <td class="xl66" height="22" style="border-top: none; height: 16.5pt;">\NUMA Node Memory(_Total)\Free & Zero Page List MBytes</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">233635</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">233634</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">233634</td> </tr>
<tr height="22" style="height: 16.5pt;"> <td class="xl66" height="22" style="border-top: none; height: 16.5pt;">\NUMA Node Memory(_Total)\Available MBytes</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">239222</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">239221</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">239229</td> </tr>
<tr height="22" style="height: 16.5pt;"> <td class="xl66" height="22" style="border-top: none; height: 16.5pt;">\Paging File(_Total)\% Usage</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">0</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">0</td> <td align="right" class="xl66" style="border-left: none; border-top: none;">0</td> </tr>
</tbody></table>
<br />
<br />
<pre style="line-height: 125%; margin: 0;"></pre>
MemoryStatus gives Available Physical Memory = 250846224384. Assuming that number is specified in bytes, dividing by 1048576 yields megabytes: 239225.6 mb. That's no more than 4.6 mb away from the 3 values for [\NUMA Node Memory(_Total)\Available MBytes] shown in the perfmon above.<br />
<br />
Below "wmic pagefileset list" shows the lone pagefile with a size of 48000 mb. Perfmon above shows it at 0% used.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKetHx-4J8llyC771twATwKszM5kFYBcewH6pNij6yKiJprPlBVlUaJ8YgaYXsqH3-QtKkWq60xMZZYLjpTFlQDw2u6GIB48mgHYwZEwE6AhMXZFgxJLvAlf9Qb5F3SywPyPbD8YDukN_J/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="153" data-original-width="742" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKetHx-4J8llyC771twATwKszM5kFYBcewH6pNij6yKiJprPlBVlUaJ8YgaYXsqH3-QtKkWq60xMZZYLjpTFlQDw2u6GIB48mgHYwZEwE6AhMXZFgxJLvAlf9Qb5F3SywPyPbD8YDukN_J/s1600/Picture1.png" /></a></div>
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">total_physical_memory_kb = 975175156 kb = 930 gb</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">available_physical_memory_kb = 243809076 kb = 238095 mb</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">total_page_file_kb = 1024327156 kb = 930 gb + 48000 mb</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">available_page_file_kb = 289622644 kb = 234835 mb + 48000 mb</span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1XgSQzEREXKihri9ftG9QQ2SpVcISvYLK6Kfdke7RQuKt6f0RlbJ5qmi24ZDpNG24KIZgx9beXLCnaEakO-e73QugmLRw7wMhEIHUthJAYKugt9dDewrnB97EzhYcUHrzDC7geEwZh_En/s1600/Picture2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="361" data-original-width="1544" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1XgSQzEREXKihri9ftG9QQ2SpVcISvYLK6Kfdke7RQuKt6f0RlbJ5qmi24ZDpNG24KIZgx9beXLCnaEakO-e73QugmLRw7wMhEIHUthJAYKugt9dDewrnB97EzhYcUHrzDC7geEwZh_En/s640/Picture2.png" width="640" /></a></div>
<br />
<br />
So what have we got? MEMORYSTATUS [Available Physical Memory] measured in bytes appears to be the same resource as perfmon [\NUMA Node Memory(_Total)\Available MBytes] and sys.dm_os_sys_memory.available_physical_memory_kb.<br />
<br />
MEMORYSTATUS [Available Paging File] measured in bytes appears to be free paging file plus MEMORYSTATUS [Available Physical Memory]. MEMORYSTATUS [Available Paging File] appears to be the same resource as sys.dm_os_sys_memory.available_page_file_kb.<br />
<br />
What about MEMORYSTATUS [Available Virtual Memory]? It seems so much higher than other measures. Pulling in the MEMORYSTATUS value from above...<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Available Virtual Memory = </span><span style="font-family: "courier new" , "courier" , monospace;">136302950027264 B = 123.97 TB</span><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><br />Here's a similar number... </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik4Xltc5tf9BEkMi4kmkn2q8mdUDuU_EAAwDj92uDLMqU-S6JCqHmVBlu17ugc-4R9JxWCzxes02EX8UQcJLKcOqV_TOyHEN0INuX_ZS2SidUrMB1y3SpUOTjDIMiKOvcWC6CNpbnQG0J8/s1600/Picture3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="307" data-original-width="1536" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik4Xltc5tf9BEkMi4kmkn2q8mdUDuU_EAAwDj92uDLMqU-S6JCqHmVBlu17ugc-4R9JxWCzxes02EX8UQcJLKcOqV_TOyHEN0INuX_ZS2SidUrMB1y3SpUOTjDIMiKOvcWC6CNpbnQG0J8/s1600/Picture3.png" /></a></div>
<br />
<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"> total_virtual_address_space_kb = 137438953343 kb = 128 TB</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">The value from dm_os_process_memory was retrieved several days after the other values in this blog post. *And* after a SQL Server service restart.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
This KB article explains that SQL Server process virtual address space starts at approximately 8TB in Windows Server 2012. But it also mentions <span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0">"Windows 2012 R2 [and above] allows virtual address space to grow as large as 128 TB".</span></span></span><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0">kb3074434</span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0">FIX: Out of memory error when the virtual address space of the SQL Server process is very low on available memory</span></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0"><a href="https://support.microsoft.com/en-us/help/3074434/">https://support.microsoft.com/en-us/help/3074434/</a></span></span><br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0">That's all for now, folks. </span></span><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0"><br /></span></span>
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0"><span class="css-901oao css-16my406 r-1qd0xha r-ad9z0x r-bcqeeo r-qvutc0"> </span> </span></span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-27329474032174488082019-12-10T20:25:00.000-08:002019-12-10T20:25:19.009-08:00Renouncing the Symbol: 1940 Resolution by Tribes to Reject the Swastika or FylfotEach of the 10 articles or captioned photographs linked below refer to the same event - the signing of a resolution by members of Navajo, Papago, Apache, and Hopi tribes in early 1940.<br />
<br />
I share links to these these articles and photographs to illustrate that over time content, art, and craft creators have been very serious about the current as well as historic associations of the symbols they use. <br />
<br />
The text of the resolution as displayed by the photographs and articles below: <br />
"Because the above ornament which has been a sign of friendship among our forefathers for many centuries has been desecrated recently by another nation of peoples,<br />
Therefore it is resolved that henceforth from this date on and forever more our tribes renounce the use of the emblem commonly known today as the swastika or fylfot on our blankets, baskets, art objects, sandpaintings and clothing."<br />
<br />
An additional note about two of the stories below: numbers 6 and 10 in the list seem to be in denial of these tribes - and the individuals themselves - to act of themselves in accordance with their principles. I'm especially troubled by the tone of the article in number 6, and hope to write a follow-up post on that particular article in the future. <br />
<br />
1.<br />
Indians Denounce Nazis, Forego Use of Swastika<br />
St. Joseph Gazette, St. Joseph, Missouri<span class="location"><a href="https://www.newspapers.com/title_12615/st_joseph_gazette/"><br />
</a>
</span><span class="location"><span class="location">Monday, </span>26 February 1940 </span><br />
<a href="https://www.newspapers.com/clip/36417593/indians_denounce_swastika/">https://www.newspapers.com/clip/36417593/indians_denounce_swastika/</a><br />
<br />
2.<br />
Indian Sign on Swastika<br />
The Akron Beacon Journal, Akron, Ohio <br />
<span class="location"><a href="https://www.newspapers.com/title_4267/the_akron_beacon_journal/">
</a>
Monday, 4 March 1940</span><br />
<a href="https://www.newspapers.com/clip/36417663/indians_denounce_swastika_2/">https://www.newspapers.com/clip/36417663/indians_denounce_swastika_2/</a><br />
<br />
3.<br />
The Evening Review, East Liverpool, Ohio<br />
Thursday, 29 February 1940<br />
<a href="https://www.newspapers.com/clip/36417770/indians_denounce_swastika_3/">https://www.newspapers.com/clip/36417770/indians_denounce_swastika_3/</a><br />
<br />
4.<br />
Star-Gazette, Elmira, New York<br />
Thursday, 29 February 1940 <br />
<a href="https://www.newspapers.com/clip/36417960/indians_denounce_swastika_4/">https://www.newspapers.com/clip/36417960/indians_denounce_swastika_4/</a> <br />
<br />
5.<br />
Indians Bar Swastika Design as Protest Against Nazis<br />
The Los Angeles Times, Los Angeles, California<br />
Monday, 26 February 1940 <br />
<a href="https://www.newspapers.com/clip/36418025/indians_denounce_swastika_5/">https://www.newspapers.com/clip/36418025/indians_denounce_swastika_5/</a><br />
<br />
6.<br />
Arizona Indians Bow to Hitler<br />
The Twin Falls News, Twin Falls, Idaho<br />
8 March 1940 <br />
<a href="https://www.newspapers.com/clip/36418064/indians_denounce_swastika_6/">https://www.newspapers.com/clip/36418064/indians_denounce_swastika_6/</a><br />
<br />
7.<br />
Four Indian Tribes Unite in Order Barring Swastika as Their Symbol<br />
The San Bernardino County Sun, San Bernardino, California<br />
Tuesday, 27 February 1940<br />
<a href="https://www.newspapers.com/clip/36418096/indians_denounce_swastika_7/">https://www.newspapers.com/clip/36418096/indians_denounce_swastika_7/</a><br />
<br />
8.<br />
Indians Denounce Swastika Emblem<br />
Wednesday, 28 February 1940 <br />
<a href="https://www.newspapers.com/clip/36418167/indians_denounce_swastika_8/">https://www.newspapers.com/clip/36418167/indians_denounce_swastika_8/</a><br />
<br />
9.<br />
Indians Ban Swastika<br />
The Town Talk, Alexandria, Louisiana<br />
Monday, 1 April 1940 <br />
<a href="https://www.newspapers.com/clip/36418274/indians_denounce_swastika_9/">https://www.newspapers.com/clip/36418274/indians_denounce_swastika_9/</a><br />
<br />
10.<br />
Put Indian Sign on Swastika<br />
Times Colonist, Victoria, British Columbia, Canada<br />
Saturday, 6 April 1940 <br />
<a href="https://www.newspapers.com/clip/36418535/indians_denounce_swastika_10/">https://www.newspapers.com/clip/36418535/indians_denounce_swastika_10/</a><br />
<br />
For proper placement in history:<br />
7 December 1941 - United States enters World War II.<br />
<br />
<br />
In addition to the links above, one may find duplicates appearing in other papers.<br />
<br />
This article is a near duplicate of "Indians Denounce Nazis, Forego Use of Swastika" from above.<br />
<br />Indians Renounce Swastika Symbol<br />Albuquerque Journal, Albuquerque, New Mexico<br />Monday 26 February 1940<br />
<a href="https://www.newspapers.com/clip/13127176/albuquerque_journal/">https://www.newspapers.com/clip/13127176/albuquerque_journal/</a><br />
SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-62267486956304868902019-11-19T17:50:00.003-08:002020-04-17T08:04:04.988-07:00SQL Server 2019 Scalar UDF inlining - OOM in some cases*** Update 2020 April 7 ***<br />
<br />
The issue described below was corrected in kb4536075, with the fix for the scalar UDF inlining OOMs first available in SQL Server 2019 CU2.<br />
<br />
FIX: Scalar UDF Inlining issues in SQL Server 2019<br /><a href="https://support.microsoft.com/en-us/help/4538581/fix-scalar-udf-inlining-issues-in-sql-server-2019">https://support.microsoft.com/en-us/help/4538581/fix-scalar-udf-inlining-issues-in-sql-server-2019</a><br />SQL Server 2019 CU2<br /><a href="https://support.microsoft.com/en-us/help/4536075/cumulative-update-2-for-sql-server-2019">https://support.microsoft.com/en-us/help/4536075/cumulative-update-2-for-sql-server-2019</a><br />
<br />
*** end update *** <br />
<br />
<br />
<br />
Here's a little something I stumbled across. A caution about scalar UDF inlining.<br />
<br />
Well, ok, maybe Joe Obbish stumbled across it first :-)<br />
<br />
Today's adventure is on my laptop. Because no lie this ugly UDF combined with current UDF inlining memory consumption will take down your server no matter *how* big it is.<br />
<br />
Here's my laptop SQL Server version and some important database details.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfs8toRwRHWt485SxGacypDds6bpIDI0Dbhi0f2JO0lD_ypluY_Ax6jt_BQsbSBLDRIo7UH7_JOHj_l0ByQjBn2wLmozZiE8jZ18ctde0y6DqhtT9DWTmoJAXxdH-kcPJ2gJGgT1MemJzT/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="424" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfs8toRwRHWt485SxGacypDds6bpIDI0Dbhi0f2JO0lD_ypluY_Ax6jt_BQsbSBLDRIo7UH7_JOHj_l0ByQjBn2wLmozZiE8jZ18ctde0y6DqhtT9DWTmoJAXxdH-kcPJ2gJGgT1MemJzT/s1600/Picture1.png" /></a></div>
<br />
OK, let's create a scalar UDF with a few logic branches. The function is nonsense, I'm sorry. But if you try this... you can try making it as sensible as you'd like. :-)<br />
<br />
In the function below there is one IF, 25 ELSE IFs, and 1 ELSE. <br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: blue;">SET</span> ANSI_NULLS <span style="color: blue;">ON</span>
<span style="color: blue;">SET</span> QUOTED_IDENTIFIER <span style="color: blue;">ON</span>
<span style="color: blue;">GO</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">OR</span> <span style="color: blue;">ALTER</span> <span style="color: blue;">FUNCTION</span> dbo.test__inline_udf
(
@in_param nvarchar(250)
)
<span style="color: blue;">RETURNS</span> nvarchar(250)
<span style="color: blue;">AS</span>
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">DECLARE</span> @retValue nvarchar(250) = @in_param
IF @in_param = N<span style="color: #a31515;">'A'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'1'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'B'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'2'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'C'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'3'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'D'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'4'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'E'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'5'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'F'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'6'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'G'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'7'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'H'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'8'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'I'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'9'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'J'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'10'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'K'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'11'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'L'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'12'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'M'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'13'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'N'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'14'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'O'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'15'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'P'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'16'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'Q'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'17'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'R'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'18'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'S'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'19'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'T'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'20'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'U'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'21'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'V'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'22'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'W'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'23'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'X'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'24'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'Y'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'25'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = N<span style="color: #a31515;">'Z'</span>
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">NOT</span> <span style="color: blue;">IN</span> ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'26'</span> <span style="color: blue;">END</span>
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span>
<span style="color: blue;">BEGIN</span> <span style="color: blue;">SET</span> @retValue = N<span style="color: #a31515;">'00'</span> <span style="color: blue;">END</span>
<span style="color: blue;">RETURN</span> @retValue
<span style="color: blue;">END</span>
</pre>
</div>
<br />
<br />
On my laptop, the following result took from 8 to 10 seconds repeatedly.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizFjxFdVsyeNNOmuTPWNXWA8MFFJu-HCHQZ7TqWTX9t2xBdtqgjyt-yMMupS99arRtPIiq8YOIQXTlOPnsv1PKWhs-KhVKskERZW-XQu926xUTSEpoxTgPP0jUDIEcXR1kQQfB_DSFUrnc/s1600/Picture4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="224" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizFjxFdVsyeNNOmuTPWNXWA8MFFJu-HCHQZ7TqWTX9t2xBdtqgjyt-yMMupS99arRtPIiq8YOIQXTlOPnsv1PKWhs-KhVKskERZW-XQu926xUTSEpoxTgPP0jUDIEcXR1kQQfB_DSFUrnc/s1600/Picture4.png" /></a></div>
<br />
<br />
I'll tell you what. I ran this same function on a VM with 930 GB vRAM, with Max Server Memory set to 690GB. It ran for over 15 minutes before crashing. Not just crashing itself. Crashing any other query on the instance that was trying to allocate memory (eg stealing against a query memory grant). It had amassed over 500 GB of optimizer memory at that point, like this...<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRMfHbJ39Fs_7ciZJISw8Eu4tbvTJLzYzy9f_uK-us9u2QBFbCocGBhyP3d8vZUOVxhahzu69kohyphenhyphenl0hIh3yqFPyzswpdFbyOOBQkBLR5Zf7vPAw5dIQOAOWMVghhj2hPcXdD-sH330aC0/s1600/picture3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="684" data-original-width="1004" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRMfHbJ39Fs_7ciZJISw8Eu4tbvTJLzYzy9f_uK-us9u2QBFbCocGBhyP3d8vZUOVxhahzu69kohyphenhyphenl0hIh3yqFPyzswpdFbyOOBQkBLR5Zf7vPAw5dIQOAOWMVghhj2hPcXdD-sH330aC0/s1600/picture3.png" /></a></div>
<br />
Wow. Now you'll notice that the big ol' server is a slightly different version. No matter. As far as I know, this behavior will be found on every version of SQL Server 2019 up to date (today is 2019 November 19).<br />
<br />
Once the instance reached the total limit for "stealable" memory, the query crashed. Same thing if an estimated plan was requested - so its in compilation rather than execution that the aggressive memory consumption occurs. Once the OOM occurs, the large amount of optimizer memory is freed within a few seconds and the instance is back to normal for all other purposes. <br />
<br />
Now, if I disable UDF inlining... the following result comes in well under 1 second.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZ12e0jins0u-B1vbvMU4KAn1EiJa0tMFPSwUOrj2FIHxqpuiQOgMZcO-vFOI5IR1CisiKx0CK5p2R4zUO7rRETjl2GYzH9-0ic1g0-S_XBO1udtRh1buh5YIL1hIeQFokOVka0DKwzB_/s1600/Picture5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="281" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZ12e0jins0u-B1vbvMU4KAn1EiJa0tMFPSwUOrj2FIHxqpuiQOgMZcO-vFOI5IR1CisiKx0CK5p2R4zUO7rRETjl2GYzH9-0ic1g0-S_XBO1udtRh1buh5YIL1hIeQFokOVka0DKwzB_/s1600/Picture5.png" /></a></div>
<br />
Here's the final thing I can say about this for now...<br />
If you generate an estimated plan for a query that tries to inline that UDF, it'll also crash due to excessive optimizer memory*.<br />
<br />
I'll update this blog post in the future when a fix is available. <br />
<br />
<br />
* well, I speculate that there is <i>some </i>amount of memory which may be sufficient to allow this to complete with generating an OOM. But once it's more than 500 GB does it really matter?<br />
<br />
<br />
~~~~~<br />
<br />
The scalar UDF used above is really, really bad :-)<br />
<br />
So here's a nicer one.<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: blue;">SET</span> ANSI_NULLS <span style="color: blue;">ON</span>
<span style="color: blue;">SET</span> QUOTED_IDENTIFIER <span style="color: blue;">ON</span>
<span style="color: blue;">GO</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">OR</span> <span style="color: blue;">ALTER</span> <span style="color: blue;">FUNCTION</span> dbo.test__inline_udf_2
(
@in_param INT
)
<span style="color: blue;">RETURNS</span> INT
<span style="color: blue;">AS</span>
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">DECLARE</span> @retValue INT = @in_param
IF @in_param = 1
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">IN</span>
( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
<span style="color: blue;">SET</span> @retValue = 1
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> IF @in_param = 2
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">IN</span>
( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
<span style="color: blue;"> SET</span> @retValue = 2
<span style="color: blue;"> END</span>
<span style="color: blue;"> ELSE</span> IF @in_param = 3
<span style="color: blue;">BEGIN</span>
IF @retValue <span style="color: blue;">IN</span>
( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
<span style="color: blue;"> SET</span> @retValue = 3
<span style="color: blue;"> END</span>
<span style="color: blue;"> ELSE</span> IF @in_param = 4
<span style="color: blue;"> BEGIN</span>
IF @retValue <span style="color: blue;">IN</span>
( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
<span style="color: blue;"> SET</span> @retValue = 4
<span style="color: blue;"> END</span>
<span style="color: blue;"> ELSE</span> IF @in_param = 5
<span style="color: blue;"> BEGIN</span>
IF @retValue <span style="color: blue;">IN</span>
( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
<span style="color: blue;">SET</span> @retValue = 5
<span style="color: blue;">END</span>
<span style="color: blue;">ELSE</span> <span style="color: blue;">SET</span> @retValue = 0
<span style="color: blue;">RETURN</span> @retValue
<span style="color: blue;">END</span>
</pre>
</div>
<br />
No more implicit conversions. Took out some unnecessary BEGIN-END pairs. Its only one IF, four ELSE IFs, and an ELSE. Changed the NOT IN clauses to IN clauses.<br />
<br />
And when i run it on my monster VM, it also generates an error.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii0lgS7IxwuyUnrTEBvkd8uo2R-Zn3C1Yijax7jVfbSdgfjpiut8GhivlgEDq63bkjfrGo1UQ5Ddbj7OMfqiTVKS9tHMlyN6_yw4cuVHvQODv8Sjln6jAXfa-o9mNbGV1NoZ-ksOXtxvzb/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="691" data-original-width="1600" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii0lgS7IxwuyUnrTEBvkd8uo2R-Zn3C1Yijax7jVfbSdgfjpiut8GhivlgEDq63bkjfrGo1UQ5Ddbj7OMfqiTVKS9tHMlyN6_yw4cuVHvQODv8Sjln6jAXfa-o9mNbGV1NoZ-ksOXtxvzb/s1600/Picture1.png" /></a></div>
<br />
That looks even more severe that the previous error. But its the same underlying condition: working on the inlining of the scalar UDF during plan compile kept gobbling optimizer memory until something gave way.<br />
<br />
<div style="visibility: hidden;">
Msg 701, Level 17, State 123, Line 6<br />
There is insufficient system memory in resource pool 'default' to run this query.<br />
Location:<br />
Expression: false<br />
SPID: 61<br />
Process ID: 4916<br />
Msg 3624, Level 20, State 1, Line 1<br />
A system assertion check has failed.<br />
Msg 596, Level 21, State 1, Line 0<br />
Cannot continue the execution because the session is in the kill state.<br />
Msg 0, Level 20, State 0, Line 0<br />
A severe error occurred on the current command.<br />
Froid MEMORY_CLERK_SQLOPTIMIZER</div>
<br />SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com4tag:blogger.com,1999:blog-3617908412741200959.post-18947986048156053892019-09-30T12:07:00.001-07:002019-09-30T12:07:27.754-07:00Observing the [DBCC CHECKDB] parallel object checkThis is a query i use to keep tabs on all of the workers when i run [dbcc checkdb] at high DOP :-)<br />
<br />
Note: this query won't catch the initial portions of checkdb that always run at DOP 1 - the checkalloc, checkcatalog, etc. <br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">;<span style="color: blue;">WITH</span> owt <span style="color: blue;">AS</span>
(<span style="color: blue;">SELECT</span> exec_context_id, wait_type,
<span style="color: blue;">MAX</span>(wait_duration_ms) wait_duration_ms
<span style="color: blue;">FROM</span> sys.dm_os_waiting_tasks owt
<span style="color: blue;">GROUP</span> <span style="color: blue;">BY</span> exec_context_id, wait_type)
<span style="color: blue;">SELECT</span> capture_tm = getdate(), owt.wait_type, <span style="color: blue;">count</span>(*) waiters,
<span style="color: blue;">MIN</span>(owt.wait_duration_ms) min_wait_ms,
<span style="color: blue;">MAX</span>(owt.wait_duration_ms) max_wait_ms
<span style="color: blue;">FROM</span> sys.dm_exec_requests req
<span style="color: blue;">JOIN</span> sys.dm_os_tasks ot <span style="color: blue;">ON</span> req.session_id = ot.session_id
<span style="color: blue;">LEFT</span> <span style="color: blue;">OUTER</span> <span style="color: blue;">JOIN</span> owt
<span style="color: blue;">ON</span> ot.session_id = owt.session_id <span style="color: blue;">AND</span> ot.exec_context_id = owt.exec_context_id
<span style="color: blue;">WHERE</span> req.command <span style="color: blue;">IN</span> (<span style="color: #a31515;">'dbcc table check'</span>)
<span style="color: blue;">GROUP</span> <span style="color: blue;">BY</span> owt.wait_type
<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> waiters <span style="color: blue;">DESC</span>;
</pre>
</div>
<br />
qSQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-59617854451827141402019-09-19T09:15:00.002-07:002019-09-19T10:11:13.056-07:00SQL Server Unequal NUMA CPU engagementWith physical servers using NUMA configuration - or vms using vNUMA - a number of factors can lead to uneven CPU utilization among the NUMA nodes.<br />
<br />
Consider a 2x8 vm, with SQL Server maxdop set at 8. Assume a single maxdop 8 parallel query running on that system. The parallel workers will most likely be sitting on 8 user schedulers. If that parallel query has multiple zones, the parallel workers will still most likely be on 8 user schedulers, with as many parallel workers for the query stacked on each of those schedulers as there are zones in the plan.<br />
<br />
All of the schedulers hosting parallel workers for that query may be co-resident with each other in vNUMA node 0. Or 1. Or they may be spread across them in some manner.<br />
<br />
The "single query with maxdop less than scheduler count" scenario gives a good starting point for understanding how CPU engagement of the NUMA nodes may be different at any given time.<br />
<br />
(Location of context ID 0 for the session adds another detail to this scenario. It may be co-resident on a scheduler with some number of parallel workers for the query, or it may not. For example, if all parallel workers are in vNUMA node 0 and context ID 0 is also in vNUMA node 0 in this example, context ID 0 is co-resident on a scheduler with at least one parallel worker for the query.)<br />
<br />
Imbalances can even arise if all queries are maxdop 1. SQL Server distributed incoming connections to an end-point among all nodes available to that end-point with a round-robin scheme. But! Due to use of ADO.NET connection pooling and a pre-existing pool, two successive connections from a client - in the same pool - may very well end up on the same node. The fairly fast ramp up of pools to their maximum size (by default 100) and fairly slow ramp down (documentation says an idle pool connection will be disposed after 4 to 8 minutes of idle time, down to minimum pool size) can lead to some unexpected distributions of connections.<br />
<br />
Now, its even possible that an equal number of active workers are on each scheduler of each node, but the vNUMA nodes *still* show unequal CPU engagement. I'll just mention 1 query-based possibility, and one system state-based possibility.<br />
<br />
What if the queries on node 1 are optimized CCI-based queries, while through some stroke of luck open to the author of hypothetical situations the queries on node 0 are heavily read-dependent rowstore queries?<br />
<br />
The distribution of pageio_latch waits would lean toward Node 0 due to the operation pattern there(especially if readahead for some reason or other isn't engaged or is still so slow it produces waits). And those waits could suppress CPU engagement on Node 0, while the same level of effect would not impede engagement on node 1.<br />
<br />
Now let's talk how system state could result in uneven CPU engagement across the vNUMA nodes, even if work is evenly distributed.<br />
Various memory states can result in that pattern.<br />
What if another application is running on the same VM? If its memory primarily comes from NUMA node 0, its memory management can come into conflict with SQL Server, which will try to balance its memory utilization across the NUMA nodes.<br />
<br />
Perfmon counters [\NUMA Node Memory(*)\Free & Zero Page List MBytes] can be good to peruse if this is suspected. If only one of 2 nodes is flirting with bottoming out Free and Zero Page List memory, it can disproportionately suffer from memory stalls and memory-related SQL Server waits, as well as potentially suffering from content send to and retrieve from pagefile.sys. <br />
<br />
OK, enough speculation from me. :-)<br />
<br />
Here's a stored procedure that, if run in a fairly short interval like every 10 seconds, can give insight into uneven CPU utilization on a NUMA server based on information from within SQL Server. <br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;"><pre style="line-height: 125%; margin: 0;"><span style="color: blue;">CREATE</span> <span style="color: blue;">PROCEDURE</span> dbo.SASQ_GRAB
<span style="color: blue;">AS</span>
IF object_id (<span style="color: #a31515;">'dbo.SASQ_SCHEDULER_TASKS'</span>) <span style="color: blue;">IS</span> <span style="color: blue;">NULL</span>
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> dbo.SASQ_SCHEDULER_TASKS (
capture_time DATETIME <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
scheduler_id INT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
session_id SMALLINT <span style="color: blue;">NULL</span>,
wait_type NVARCHAR(60) <span style="color: blue;">NULL</span>,
task_count SMALLINT <span style="color: blue;">NULL</span>
);
<span style="color: blue;">CREATE</span> CLUSTERED <span style="color: blue;">INDEX</span> CI <span style="color: blue;">ON</span> dbo.SASQ_SCHEDULER_TASKS (capture_time)
<span style="color: blue;">WITH</span> (data_compression = <span style="color: blue;">row</span>);
<span style="color: blue;">END</span>
IF object_id (<span style="color: #a31515;">'dbo.SASQ_NODE_CONNS'</span>) <span style="color: blue;">IS</span> <span style="color: blue;">NULL</span>
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> dbo.SASQ_NODE_CONNS (
capture_time DATETIME <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
node_affinity TINYINT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
client_net_address VARCHAR(50) <span style="color: blue;">NULL</span>,
conn_count SMALLINT <span style="color: blue;">NULL</span>
);
<span style="color: blue;">CREATE</span> CLUSTERED <span style="color: blue;">INDEX</span> CI <span style="color: blue;">ON</span> dbo.SASQ_NODE_CONNS (capture_time)
<span style="color: blue;">WITH</span> (data_compression = <span style="color: blue;">row</span>);
<span style="color: blue;">END</span>
IF object_id (<span style="color: #a31515;">'dbo.SASQ_WAIT_STATS'</span>) <span style="color: blue;">IS</span> <span style="color: blue;">NULL</span>
<span style="color: blue;">BEGIN</span>
<span style="color: blue;">CREATE</span> <span style="color: blue;">TABLE</span> dbo.SASQ_WAIT_STATS (
capture_time DATETIME <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
wait_type NVARCHAR(60) <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
waiting_tasks_count BIGINT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
wait_time_ms BIGINT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
max_wait_time_ms BIGINT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>,
signal_wait_time_ms BIGINT <span style="color: blue;">NOT</span> <span style="color: blue;">NULL</span>
);
<span style="color: blue;">CREATE</span> CLUSTERED <span style="color: blue;">INDEX</span> CI <span style="color: blue;">ON</span> dbo.SASQ_WAIT_STATS (capture_time)
<span style="color: blue;">WITH</span> (data_compression=<span style="color: blue;">row</span>);
<span style="color: blue;">END</span>
<span style="color: blue;">DECLARE</span> @ct DATETIME;
<span style="color: blue;">SET</span> @ct = GETDATE();
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> dbo.SASQ_SCHEDULER_TASKS <span style="color: blue;">WITH</span> (TABLOCK)
<span style="color: blue;">SELECT</span> @ct, ot.scheduler_id, ot.session_id, owt.wait_type, task_count = <span style="color: blue;">count</span>(*)
<span style="color: blue;">FROM</span> sys.dm_os_tasks ot <span style="color: blue;">with</span> (nolock)
<span style="color: blue;">LEFT</span> <span style="color: blue;">OUTER</span> <span style="color: blue;">JOIN</span> sys.dm_os_waiting_tasks owt <span style="color: blue;">with</span> (nolock) <span style="color: blue;">ON</span> ot.task_address = owt.waiting_task_address
<span style="color: blue;">WHERE</span> scheduler_ID < 1048576
<span style="color: blue;">GROUP</span> <span style="color: blue;">BY</span> ot.scheduler_id, ot.session_id, owt.wait_type
<span style="color: blue;">ORDER</span> <span style="color: blue;">BY</span> ot.scheduler_id <span style="color: blue;">ASC</span>
<span style="color: blue;">OPTION</span> (MAXDOP 1);
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> dbo.SASQ_NODE_CONNS <span style="color: blue;">with</span> (tablock)
<span style="color: blue;">SELECT</span> @ct, node_affinity, client_net_address, conn_count = <span style="color: blue;">count</span>(*)
<span style="color: blue;">FROM</span> SYS.dm_exec_connections <span style="color: blue;">with</span> (nolock)
<span style="color: blue;">GROUP</span> <span style="color: blue;">BY</span> node_affinity, client_net_address
<span style="color: blue;">OPTION</span> (MAXDOP 1);
<span style="color: blue;">INSERT</span> <span style="color: blue;">INTO</span> dbo.SASQ_WAIT_STATS <span style="color: blue;">with</span> (tablock)
<span style="color: blue;">SELECT</span> capture_time = GETDATE(), wait_type, waiting_tasks_count, wait_time_ms, max_wait_time_ms, signal_wait_time_ms
<span style="color: blue;">FROM</span> sys.dm_os_wait_stats ws <span style="color: blue;">WITH</span> (NOLOCK)
<span style="color: blue;">WHERE</span> waiting_tasks_count <> 0
<span style="color: blue;">OPTION</span> (MAXDOP 1);
<span style="color: green;">/* 20190919</span>
<span style="color: green;"> grab some info from DMOs in iterations of eg 10s to understand</span>
<span style="color: green;"> discrepancy of cpu engagement between NUMA nodes</span>
<span style="color: green;">*/</span>
</pre></div>SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0tag:blogger.com,1999:blog-3617908412741200959.post-63869022130152515002019-09-13T14:11:00.003-07:002019-09-13T14:12:07.202-07:00SQL Server NUMA Memory.<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;">;<span style="color: blue;">WITH</span> tgt <span style="color: blue;">AS</span> (<span style="color: blue;">SELECT</span> instance_name, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Target Node Memory (KB)'</span>
<span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: #a31515;">'TOTAL'</span>, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Target Server Memory (KB)'</span>),
tot <span style="color: blue;">AS</span> (<span style="color: blue;">SELECT</span> instance_name, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Total Node Memory (KB)'</span>
<span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: #a31515;">'TOTAL'</span>, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Total Server Memory (KB)'</span>),
dbc <span style="color: blue;">AS</span> (<span style="color: blue;">SELECT</span> instance_name, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Database Node Memory (KB)'</span>
<span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: #a31515;">'TOTAL'</span>, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Database Cache Memory (KB)'</span>),
stl <span style="color: blue;">AS</span> (<span style="color: blue;">SELECT</span> instance_name, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Stolen Node Memory (KB)'</span>
<span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: #a31515;">'TOTAL'</span>, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Stolen Server Memory (KB)'</span>),
fre <span style="color: blue;">AS</span> (<span style="color: blue;">SELECT</span> instance_name, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Free Node Memory (KB)'</span>
<span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: #a31515;">'TOTAL'</span>, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Free Memory (KB)'</span>),
frn <span style="color: blue;">AS</span> (<span style="color: blue;">SELECT</span> instance_name, cntr_value
<span style="color: blue;">FROM</span> SYS.DM_OS_PERFORMANCE_COUNTERS
<span style="color: blue;">WHERE</span> COUNTER_NAME = <span style="color: #a31515;">'Foreign Node Memory (KB)'</span>
<span style="color: blue;">UNION</span> <span style="color: blue;">ALL</span>
<span style="color: blue;">SELECT</span> <span style="color: #a31515;">'TOTAL'</span>, cntr_value = <span style="color: blue;">CONVERT</span>(INT, <span style="color: blue;">NULL</span>))
<span style="color: blue;">SELECT</span> tgt.instance_name, target_kb = tgt.cntr_value,
total_kb = tot.cntr_value, dbCache_kb = dbc.cntr_value,
stolen_kb = stl.cntr_value, free_kb = fre.cntr_value,
foreign_kb = frn.cntr_value
<span style="color: blue;">FROM</span> tgt
<span style="color: blue;">JOIN</span> tot <span style="color: blue;">ON</span> tgt.instance_name = tot.instance_name
<span style="color: blue;">JOIN</span> frn <span style="color: blue;">ON</span> tgt.instance_name = frn.instance_name
<span style="color: blue;">JOIN</span> dbc <span style="color: blue;">ON</span> tgt.instance_name = dbc.instance_name
<span style="color: blue;">JOIN</span> stl <span style="color: blue;">ON</span> tgt.instance_name = stl.instance_name
<span style="color: blue;">JOIN</span> fre <span style="color: blue;">ON</span> tgt.instance_name = fre.instance_name;
</pre>
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrEdU7cSzeXiN6lokl6EyxrShNNtLj9J1WH1eoH5zrNwVIoJB_UpiZrpUCRNC6azgJ8EYM2USC4n3R9El-h0EjHxLTbjlavlG2ApU_24VRi8Qx5KJA2wWhZT8HzFoZ_fYIccPJny07Wo7-/s1600/Picture1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="351" data-original-width="955" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrEdU7cSzeXiN6lokl6EyxrShNNtLj9J1WH1eoH5zrNwVIoJB_UpiZrpUCRNC6azgJ8EYM2USC4n3R9El-h0EjHxLTbjlavlG2ApU_24VRi8Qx5KJA2wWhZT8HzFoZ_fYIccPJny07Wo7-/s640/Picture1.png" width="640" /></a></div>
<br />
q<br />
<br />SQL_Sasquatchhttp://www.blogger.com/profile/13470482959972282429noreply@blogger.com0