<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results for 'app:weblogs' matching tag 'SQL Server'</title><link>http://msmvps.com/search/SearchResults.aspx?q=app:weblogs&amp;tag=SQL+Server&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tag 'SQL Server'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Tips for DBA: Экспресс-диагностика достаточности памяти системе и экземпляру SQL Server</title><link>http://msmvps.com/blogs/gladchenko/archive/2012/06/19/1811346.aspx</link><pubDate>Tue, 19 Jun 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1811346</guid><dc:creator>gladchenko</dc:creator><description>&lt;div align="justify"&gt;
&lt;p align="justify"&gt;По ссылке в сценарии можно найти статью, которая меня вдохновила написать пример сценария, который может оказаться полезным для экспресс-диагностики проблем распределения оперативной и виртуальной памяти для нужд запрашиваемого экземпляра SQL Server и операционной системы. Я оставил только реальные (как мне думается) сценарии, которые могут случиться с памятью. Прогон на моих серверах вроде показал правдивость обнаруженного. Посмотрите у себя? Обсудить результаты и сам сценарий можно в коментариях.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;tt&gt;&lt;span style="color:green;"&gt;-- Быстрый тест проблем с памятью&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;-- По мотивам: &lt;a href="http://bit.ly/LkT05M"&gt;http://bit.ly/LkT05M&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;WITH&lt;/span&gt;&lt;span style="color:teal;"&gt; RingBufferXML&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;AS&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; &lt;span style="color:fuchsia;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;Record&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:blue;"&gt;XML&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;AS&lt;/span&gt; &lt;span style="color:teal;"&gt;RBR&lt;/span&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; &lt;span&gt;&lt;span style="color:lime;"&gt;sys&lt;/span&gt; &lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:lime;"&gt;dm_os_ring_buffers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt;&amp;nbsp;&lt;span style="color:teal;"&gt;ring_buffer_type&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;RING_BUFFER_RESOURCE_MONITOR&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt;&lt;span style="font-family:Consolas;"&gt; &lt;span style="color:blue;"&gt;DISTINCT&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Зафиксированы проблемы&amp;#39;&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;CASE&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;WHEN&lt;/span&gt; &lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;=&lt;/span&gt; 0 &lt;span style="color:gray;"&gt;AND&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;&amp;nbsp;=&lt;/span&gt; 2 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Недостаточно физической памяти для системы&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;WHEN&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;=&lt;/span&gt; 0 &lt;span style="color:gray;"&gt;AND&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;&lt;span&gt;tinyint&lt;/span&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;&amp;nbsp;=&lt;/span&gt; 4 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Недостаточно виртуальной памяти для системы&amp;#39;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;WHEN&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;=&lt;/span&gt; 2 &lt;span style="color:gray;"&gt;AND&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;&amp;nbsp;=&lt;/span&gt; 0 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;Недостаточно физической памяти для запросов&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;WHEN&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; 4 &lt;span style="color:gray;"&gt;AND&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;=&lt;/span&gt; 4&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Недостаточно виртуальной памяти для запросов и системы&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;WHEN&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;=&lt;/span&gt; 2 &lt;span style="color:gray;"&gt;AND&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;&lt;span&gt;tinyint&lt;/span&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;&amp;nbsp;=&lt;/span&gt; 4 &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Недостаточно виртуальной памяти для системы и физической для запросов&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;WHEN&lt;/span&gt;&lt;span&gt; &lt;span&gt;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; 2 &lt;span style="color:gray;"&gt;AND&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;&amp;nbsp;=&lt;/span&gt; 2 &lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;THEN&lt;/span&gt; &lt;span style="color:red;"&gt;&amp;#39;Недостаточно физической памяти для системы и запросов&amp;#39;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;FROM&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;RingBufferXML&lt;/span&gt;&lt;br /&gt;&lt;span style="color:gray;"&gt;CROSS APPLY&lt;/span&gt; &lt;span style="color:teal;"&gt;RingBufferXML&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;RBR&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;nodes&lt;/span&gt; &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;Record&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:teal;"&gt;Record&lt;/span&gt; &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:gray;"&gt;IN&lt;/span&gt; &lt;span style="color:gray;"&gt;(&lt;/span&gt;0&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;) AND&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;&lt;span&gt;tinyint&lt;/span&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) IN (&lt;/span&gt;0&lt;span style="color:gray;"&gt;,&lt;/span&gt;2&lt;span style="color:gray;"&gt;,&lt;/span&gt;4&lt;span style="color:gray;"&gt;) AND&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsProcess)[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) +&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:teal;"&gt;XMLRecord&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;(ResourceMonitor/IndicatorsSystem)[1]&amp;#39;&lt;/span&gt;&amp;nbsp;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;tinyint&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) &amp;gt;&lt;/span&gt; 0&lt;br /&gt;&lt;/tt&gt;&lt;/p&gt;</description></item><item><title>Оптимизации ввода-вывода для нагруженных баз данных</title><link>http://msmvps.com/blogs/gladchenko/archive/2012/05/02/1809369.aspx</link><pubDate>Wed, 02 May 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1809369</guid><dc:creator>gladchenko</dc:creator><description>&lt;p&gt;&lt;iframe scrolling="yesmce_src=&amp;quot;http://www.techdays.ru/videos/4314.html?isEmbedded=true&amp;quot;" frameborder="10" src="http://www.techdays.ru/videos/4314.html?isEmbedded=true" style="width:600px;height:400px;"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;В докладе будут рассмотрены вопросы оборудования дисковых подсистем для задач SQL Server в приложениях хранилищ данных и OLTP нагрузки. Будут рассмотрены варианты использования сетей на основе Fibre Channel и коммутаторов SAN. Вы увидите какие ограничения могут накладывать на производительность ввода-вывода разные компоненты дисковой подсистемы. Будут даны основы современных дисковых подсистем и их важные особенности с точки зрения обслуживания нагрузки SQL Server. Будет показано, на какие параметры конфигурации СХД, операционной системы и СУБД нужно обращать внимание. В презентации будут представлены несколько примеров, демонстрирующих возможности современных дисковых подсистем.&lt;/p&gt;
&lt;p&gt;Другие доклады &lt;a target="_new" href="http://www.sqlpass.org/24hours/russia2012"&gt;Конференция &amp;quot;24 Hours of PASS. Russian Edition&amp;quot;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.techdays.ru/videos/24%20HOP"&gt;http://www.techdays.ru/videos/24%20HOP&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Livro de SQL Server 2012</title><link>http://msmvps.com/blogs/paleo/archive/2012/03/15/livro-de-sql-server-2012.aspx</link><pubDate>Thu, 15 Mar 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1807407</guid><dc:creator>paleo</dc:creator><description>&lt;p&gt;Mais um livro grátis da Microsoft Press!&lt;/p&gt;&lt;p&gt;&lt;img style="width:257px;height:313px;" border="0" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-17-44-metablogapi/5078.9780735665156x_5F00_thumb_5F00_2FD104F7.jpg" width="257" height="313" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2012/03/15/free-ebook-introducing-microsoft-sql-server-2012.aspx"&gt;http://blogs.msdn.com/b/microsoft_press/archive/2012/03/15/free-ebook-introducing-microsoft-sql-server-2012.aspx&lt;/a&gt;&lt;/p&gt;</description></item><item><title>SQL Server 2012 releases RTM and Evaluation edition, don't missing virtual event launch 07th March 2012</title><link>/http://sqlserver-qa.net/blogs/sql2008/archive/2012/03/07/10332.aspx</link><pubDate>Wed, 07 Mar 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1807071</guid><dc:creator>Anonymous</dc:creator><description>SQL Server 2012 released – out there still organization in process to upgrade to SQL Server 2008 version the next release of product is ready now! In Microsoft&amp;#39;s words: The world’s most widely deployed data platform, Microsoft SQL Server 2012, has released to manufacturing (RTM), with an evaluation version available today . General availability will start on April 1. If you want to know more about whats in there with this new release don&amp;#39;t forget to register and attend Virtual Launch on 07th March...(&lt;a href="http://sqlserver-qa.net/blogs/sql2008/archive/2012/03/07/10332.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlserver-qa.net/aggbug.aspx?PostID=10332" width="1" height="1" alt="" /&gt;</description></item><item><title>SQL Server Express LocalDB - The New Express!</title><link>http://msmvps.com/blogs/siva/archive/2012/02/01/sql-server-express-localdb-the-new-express.aspx</link><pubDate>Wed, 01 Feb 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1805515</guid><dc:creator>siva</dc:creator><description>&lt;p&gt;With the introduction of SQL Express LocalDB (part of SQL Server 2012 a.k.a. &amp;quot;Denali&amp;quot;), the available Microsoft SQL database options available now are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Regular SQL Server SKUs &lt;/li&gt;    &lt;li&gt;SQL Server Express &lt;/li&gt;    &lt;li&gt;SQL Server Compact Edition (CE) &lt;/li&gt;    &lt;li&gt;SQL Express LocalDB &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;LocalDB is a lightweight version of SQL Express with zero administration and low installation foot-print. Strictly speaking, LocalDB is not a new SQL Server edition by itself; rather, it is a database engine activation mode in which the SQL Server process (sqlservr.exe) runs as a child of the calling process but without exposing any connectivity surface. The engine runs as long as the parent process runs but as a private named instance. The name of the instance can be anything given at the time of creation. Once started, other applications cannot connect to it unless the instance is explicitly shared by its owner. MSDN says user instance feature of Express editions is deprecated and developers should switch to LocalDB going forward. LocalDB also has an &lt;i&gt;automatic instance&lt;/i&gt; which is created &amp;amp; started automatically and public. Any application can connect to it and perform database operations. Technically, this automatic instance is also a named instance with a special name that reflects the engine version; for SQL Server 2012, it is v11.0. Hence, the automatic LocalDB instance is identified as &lt;strong&gt;(localdb)\v11.0&lt;/strong&gt;. Any number of private instances can be spun off from single installed LocalDB bits.&lt;/p&gt;  &lt;p&gt;From a programming perspective, the API surface remains the same, be it managed or native. In order to connect to a LocalDB instance, the &lt;i&gt;Data Source&lt;/i&gt; keyword of the connection string should start with (localdb) followed by the instance name. Example:&lt;/p&gt; &lt;code&gt;SqlConnection con = new SqlConnection (@&amp;quot;Data Source=(localdb)\v11.0;Integrated Security=true;Initial Catalog=master&amp;quot;);&lt;/code&gt;   &lt;p&gt;Here is a n00b code!&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="LocalDB Sample C# Code" border="0" alt="LocalDB Sample C# Code" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/siva.metablogapi/8816.LocalDB_2D00_Sample_2D00_C_5F002D00_Code_5F00_528A27CC.png" width="570" height="206" /&gt;&lt;/p&gt;  &lt;p&gt;As with user instances, &lt;em&gt;AttachDbFileName&lt;/em&gt; keyword is also supported to connect to a database directly. Output from a SQL Server 2012 RC0 instance for the above code is shown below:&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="LocalDB Sample Output" border="0" alt="LocalDB Sample Output" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/siva.metablogapi/5265.LocalDB_2D00_Sample_2D00_Output_5F00_7AD95A20.png" width="632" height="111" /&gt;&lt;/p&gt;  &lt;p&gt;Note the following about LocalDB:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Express edition is upgradable to higher SKUs, but LocalDB is not. LocalDB is intended to be for developers without the overhead of regular SQL Server installations. &lt;/li&gt;    &lt;li&gt;All the database size limitations of Express apply to LocalDB as well. &lt;/li&gt;    &lt;li&gt;LocalDB instances do not use Win32 services; the engine is loaded on demand by the parent process. &lt;/li&gt;    &lt;li&gt;&lt;i&gt;sqllocaldb.exe&lt;/i&gt; is the simple command line admin companion for LocalDB. It supports, creating, starting, stopping &amp;amp; deleting LocalDB instances (you cannot delete an automatic instance). &lt;/li&gt;    &lt;li&gt;LocalDB instances are named, user specific and private (except the auto instance). &lt;/li&gt;    &lt;li&gt;LocalDB stores system database files in user&amp;#39;s AppData folder (see below). This means that when LocalDB is used from an application running as a non-interactive user account (including IIS), that user account should be configured to load user profiles, Otherwise, the instance starting process will fail. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="LocalDB System DB Folder" border="0" alt="LocalDB System DB Folder" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/siva.metablogapi/8737.LocalDB_2D00_System_2D00_DB_2D00_Folder_5F00_308E9F7B.png" width="686" height="518" /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;There may be a delay when a local DB instance is created or started for the first time, causing the parent application to timeout. &lt;/li&gt;    &lt;li&gt;Multiple users on a computer can create and start database instances simultaneously using the same installed LocalDB bits. Unlike other SQL Server editions, LocalDB does not require multiple installations for multiple database engine instances. &lt;/li&gt;    &lt;li&gt;Current (pre-SQL Server 2012) versions of SQL Server Management Studio cannot connect to LocalDB instances using server name prefix &amp;quot;(localdb)&amp;quot;. Instead they should use the raw named pipe path of the LocalDB instance (this can be retrieved using sqllocaldb utility): &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="LocalDB Connectivity from SSMS" border="0" alt="LocalDB Connectivity from SSMS" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/siva.metablogapi/6332.LocalDB_2D00_Connectivity_2D00_from_2D00_SSMS_5F00_5A41F4A1.png" width="642" height="507" /&gt;&lt;/p&gt;  &lt;p&gt;Remember that the part of the named pipe path after # will change with every instance start and hence it cannot be hardcoded in the code. You can also use this named pipe path in the connection string from code. The following is a perfectly valid connection string &amp;amp; connects to the specified local DB instance:&lt;/p&gt; &lt;code&gt;SqlConnection con = new SqlConnection (@&amp;quot;Data Source=np:\\.\pipe\LOCALDB#B7BB9C55\tsql\query;Integrated Security=true;Initial Catalog=NorthWind&amp;quot;);&lt;/code&gt;</description></item><item><title>Изменения в автоматическом обновлении статистики SQL Server -T2371</title><link>http://msmvps.com/blogs/gladchenko/archive/2012/01/27/1805312.aspx</link><pubDate>Fri, 27 Jan 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1805312</guid><dc:creator>gladchenko</dc:creator><description>&lt;div align="justify"&gt;
&lt;p&gt;По материалам статьи Juergen Thomas: &lt;a href="http://blogs.msdn.com/b/saponsqlserver/archive/2011/09/07/changes-to-automatic-update-statistics-in-sql-server-traceflag-2371.aspx"&gt;Changes to automatic update statistics in SQL Server - traceflag 2371&lt;/a&gt;&lt;br /&gt;Перевод: &lt;a href="http://msmvps.com/blogs/gladchenko/default.aspx"&gt;Александр Гладченко&lt;/a&gt;&lt;br /&gt;Технический редактор: &lt;a href="http://msmvps.com/blogs/irinanaumova/default.aspx"&gt;Ирина Наумова&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;C 1998 года, когда вышел SQL Server 7.0, базовым принципом дизайна автоматического обновления статистики было отслеживание количества изменений в таблице. Когда количество изменений в таблице превышало определённый порог (процент), выполнялось автоматическое обновление статистики.&lt;br /&gt;В последующих версиях, вплоть до SQL Server 2005, в &lt;a href="http://www.sql.ru/articles/mssql/2005/081301StatisticsInSQLServer2005.shtml"&gt;дизайне сбора статистической информации&lt;/a&gt; произошли некоторые изменения, например, была добавлена возможность асинхронного обновления статистики. Кроме этого, в SQL Server была добавлена возможность оптимизации исполнения запросов за счёт отслеживания изменений на уровне столбцов с целью предоставления возможности обновления только статистики по селективности строк таблицы. Для получения более подробной информации можно почитать более полный обзор статистических данных, используемых оптимизатором запросов, который доступен здесь: &lt;a href="http://msdn.microsoft.com/en-us/library/dd535534(SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd535534(SQL.100).aspx&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p align="justify"&gt;Изначально, в версиях SQL Server 2008 и 2008 R2 не было никаких крупных изменений в дизайне сбора и использования статистики. Появившийся ещё во времена разработки SQL Server 7.0 алгоритм, основанный на фиксированном пороговом значении, остался без существенных изменений. Превышение этого порога вызывало автоматическое обновление статистики. Пороговое значение, используемое изначально, равнялось 20%, и оно оставалось таким во всех выпусках SQL Server, которые до недавнего времени появлялись на рынке. Это означает, что до недавнего времени все выпуски SQL Server инициировали процедуру автоматического обновления статистики, если для столбца таблицы были зафиксированы изменения, которые затрагивали более 20% от числа строк таблицы. Обновлению подлежит индекс на основе B-дерева, который включает такой столбец в качестве первого столбца индекса, или если существует отдельная статистика для этого столбца среди относящихся к таблице статистик столбцов. Индексы, в которых не участвует этот столбец в качестве первого (ведущего) столбца индекса, не нуждаются в обновлении статистики. Ещё одно ограничение, это реализация в коде SQL Server 7.0 специальных защитных мер для маленьких таблиц от частого обновления статистики. Требуется, чтобы в таблице было, по меньшей мере, 500 строк (6 строк для временных таблиц), тогда автоматический пересчёт статистики у этой таблицы будет происходить после превышения двадцатипроцентного порога изменений.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Как автоматическое обновление статистики используется приложениями SAP&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p align="justify"&gt;SAP взяло на вооружение автоматическое обновление статистики сразу же после его появления, и десятки тысяч клиентов много лет с успехом использовали эту функциональность в своих приложениях на базе SAP Netweaver. Это положение заметно отличается от других СУБД, для которых обновление статистики у таблиц необходимо планировать как постоянную задачу. Компания SAP рекомендует использовать эту функциональность SQL Server в полном объёме и для всех своих приложений. Применительно к SAP BW существовали небольшие проблемы с тем, что требовалось иметь в таблице не меньше 500 строк. Поэтому в SAP BW были разработаны и документированы специальные процессы, предназначенные осуществлять дополнительное обновление статистики там, где не работало автоматическое обновление статистики. Документ называется: &lt;a href="http://www.saptechno.com/sap-notes.html?view=sapnote&amp;amp;id=849062"&gt;SAP OSS Note №849062 - &amp;quot;Optimizer statistics for InfoCubes in BW&amp;quot;&lt;/a&gt;. Однако, для заказчиков систем SAP сегодня характерно увеличение объёмов данных, поддержка 64-разрядности и общая тенденция использования платформы Intel для обработки большого количества информации, необходимой бизнес - приложениям. С SAP ERP сегодня работает большое количество клиентов, а некоторые таблицы могут содержать миллиарды строк. Во многих случаях приходится сталкиваться с ситуациями, когда автоматическое обновление статистики с фиксированным порогом 20% требует изменения сотен миллионов строк в таблице, и только после этого будет запущено очередное автоматическое обновление статистики. В результате пользователи жаловались, что обновление статистики выполняется крайне редко, устаревшая статистика иногда приводит к использованию неоптимальных планов исполнения запросов.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Новое решение&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p align="justify"&gt;В SP1 для SQL Server 2008 R2 и в последующих версиях SQL Server можно использовать флаг трассировки, который изменяет фиксированный порог обновления статистики 20% на динамически изменяющуюся величину процента изменений таблицы. Чем в таблице больше строк, тем ниже порог обновления статистики. Например, если этот флаг трассировки активирован, процедура автоматического обновления статистики для таблицы с миллиардом строк будет выполнена при изменении миллиона строк. Если же флаг трассировки не активирован, та же таблица с миллиардом записей не получит автоматического обновления статистики, пока в ней не накопится 200 миллионов изменений. Для того чтобы активировать эту новую возможность, нужно включить флаг трассировки 2371. После этого, порог для триггера обновления статистики будет зависеть от числа строк в таблице. Однако, требование того, что в таблице для возможности автоматического обновления статистики должно быть не меньше 500 строк, сохраняется. Как и прежде, обновление статистики будет запускаться на основании результатов исследования пробной выборки значений, предустановленной величины, которая динамически изменяется в зависимости от числа строк в таблице.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Более подробно о том, что даёт использование флага трассировки 2371&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p align="justify"&gt;На представленном ниже графике видно, как работает новая функциональность. Для небольших таблиц порог по-прежнему будет примерно 20%. Только когда таблица превысит 25000 строк, начнёт действовать динамическое изменение порога срабатывания, когда при увеличении количества строк, процент изменённых записей становится все ниже и ниже. Например, в таблице с 100000 строк порог для триггера обновления статистики будет снижен до 10%. В таблице с 1000000 строк потребуется изменить около 3,2%, после чего сработает триггер автоматического обновления статистики.&lt;br /&gt;&lt;img src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-42-metablogapi/4370.clip_5F00_image002_5F00_thumb_5F00_64787B84.png" vspace="20" hspace="20" alt="" /&gt;&lt;br /&gt;В таблицах с 10000000 и 50000000 строк необходимые для обновления статистики изменения будут составлять не более 1% или 0,5% от общего числа строк. Для таблицы с 100000000 строк потребуется около 0,31%. Такое поведение нового механизма автоматического обновления статистики приведёт к тому, что для наиболее важных таблиц в схемах SAP, которые подвержены большому числу изменений, статистика будет обновляться чаще. Применительно к приложениям SAP это может быть в 20-60 раз чаще, чем это было раньше, когда после перехода в новый финансовый месяц или год необходимое число изменений накапливалось только через несколько недель или несколько месяцев, с новым флагом счёт пойдёт на дни.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Последствия включения флага трассировки&lt;/h2&gt;
&lt;div&gt;&lt;/div&gt;
&lt;p align="justify"&gt;Как было показано выше, автоматическое обновление статистики будет выполняться чаще для тех таблиц, у которых изменения происходят с высокой частотой. Недостатком такого подхода является то, что обновление статистики приводит к перекомпиляции запросов, относящихся к этой таблице. Это может повысить риски получения другого плана исполнения запроса при повторном его исполнении. С другой стороны, динамический порог для триггера обновления статистики необходимо рассматривать как средство, призванное решать известные проблемы выбора оптимального плана для нового месяца или нового финансового года, когда статистика ещё актуальна для месяца предыдущего отчётного периода.&lt;br /&gt;Поскольку новая функциональность только появилась, ещё нет никаких рекомендаций о том, как в целом её следует использовать для приложений SAP. Тесты этого нового флага, проведённые Microsoft в течение нескольких месяцев, оказались весьма успешными, и эта функциональность будет добавлена в новую версию SQL Server 2012, и в SAP ERP, которая будет построена на основе поддерживающих флаг версий SQL Server уже в середине ноября 2011 года. Однако авторы статьи хотели бы призвать клиентов SAP испытать новую функциональность, если запросы с устаревшей статистикой создают проблемы, или используются специальные процедуры, описанные в &lt;a href="https://service.sap.com/sap/support/notes/1558087"&gt;&amp;quot;OSS note #1558087&amp;quot;&lt;/a&gt;. Новая функциональность становится доступной после установки Service Pack 1 для SQL Server 2008 R2, и будет доступна в следующей версии SQL Server 2012. В новой версии тоже нужно будет включать соответствующий флаг трассировки. Планов включить эту функциональность в более ранние версии SQL Server, такие, как SQL Server 2008 или 2005, нет.&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;</description></item><item><title>How to keep a track of list of SQL Server versions and builds releases?</title><link>/http://sqlserver-qa.net/blogs/el/archive/2012/01/17/10326.aspx</link><pubDate>Tue, 17 Jan 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1804998</guid><dc:creator>Anonymous</dc:creator><description>I believe until SQL Server 2000 (or even SQL 2005) it was easy to remember the release version of your SQL Server instance. Since the changes affected from SQL Server Release Services and inception of Cumulative Update packages it is hard to keep a track of list of builds and version releases. Let it be a controlled installation of service packs and cumulative update packages, you must know the information in order to check what is fixed in the release.In general the best practice is to apply only...(&lt;a href="http://sqlserver-qa.net/blogs/el/archive/2012/01/17/10326.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlserver-qa.net/aggbug.aspx?PostID=10326" width="1" height="1" alt="" /&gt;</description></item><item><title>Master SQL Chef series: Troubleshooting multi-server instances with #sql2k8r2cookbook</title><link>/http://sqlserver-qa.net/blogs/sql2008/archive/2012/01/16/10322.aspx</link><pubDate>Mon, 16 Jan 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1804949</guid><dc:creator>Anonymous</dc:creator><description>Managing multiple instances of SQL Servers and databases is a challenging task, having a third party tool is not a problem however it is always BEST to manage the show using SQL Server Management Studio (SSMS). SQL Server tools are easy to use and help to manage multi-server management through automated multi-server jobs, event forwarding and the ability to manage multiple instances from a single-machine console. Since SQL Server 2008 R2 version (and SQL Server 2008 SP2) onwards the SSMS tool has...(&lt;a href="http://sqlserver-qa.net/blogs/sql2008/archive/2012/01/16/10322.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlserver-qa.net/aggbug.aspx?PostID=10322" width="1" height="1" alt="" /&gt;</description></item><item><title>SQL Server Opertional practices: Support ended for SQL Server 2005 Service Pack 3 and its time to upgrade too!</title><link>/http://sqlserver-qa.net/blogs/tools/archive/2012/01/10/sql-server-opertional-practices-support-ended-for-sql-server-2005-service-pack-3-and-its-time-to-upgrade-too.aspx</link><pubDate>Tue, 10 Jan 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1804555</guid><dc:creator>Anonymous</dc:creator><description>As of today the support for SQL Server 2005 Service Pack 3 ends, though the mainstream support for SQL Server 2005 was ended on 12th April 2011. This means only extended support is available for this version until 12th April 2016. Though there is a differnt set of support policy for service pack releases on every Microsoft product, which is nothing but support ends 12 months after next service pack releases or at the end of product&amp;#39;s support lifecycle, whichever comes first. You can find more information...(&lt;a href="http://sqlserver-qa.net/blogs/tools/archive/2012/01/10/sql-server-opertional-practices-support-ended-for-sql-server-2005-service-pack-3-and-its-time-to-upgrade-too.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlserver-qa.net/aggbug.aspx?PostID=10317" width="1" height="1" alt="" /&gt;</description></item><item><title>Master SQL Chef series: Implementing Availability feature #sql2k8r2cookbook</title><link>/http://sqlserver-qa.net/blogs/sql2008/archive/2012/01/09/10314.aspx</link><pubDate>Mon, 09 Jan 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1804517</guid><dc:creator>Anonymous</dc:creator><description>When we talk about availability the key step in providing the feature is to ensure such feature is available and easily implemented. High Availability is purely dependant on hardware and software that will activate the failover or failback whenever the system is affected with the problem. Similarly, more complex and larger a database application, the more important it is to automate administrative tasks with proactive maintenance tasks to ensure data is available. The key factors for hardware and...(&lt;a href="http://sqlserver-qa.net/blogs/sql2008/archive/2012/01/09/10314.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://sqlserver-qa.net/aggbug.aspx?PostID=10314" width="1" height="1" alt="" /&gt;</description></item></channel></rss>