<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3144552297517789091</id><updated>2024-09-01T04:54:55.360-04:00</updated><category term="Configuration"/><category term="Memory"/><category term="Auditing"/><category term="Certifications"/><category term="Clustering"/><category term="Conferences"/><category term="Cursors"/><category term="Databases"/><category term="Indexes"/><category term="Internals"/><category term="MCM"/><category term="Microsoft"/><category term="NUMA"/><category term="Networking"/><category term="Programming"/><category term="SQL Saturday"/><category term="SQLOS"/><category term="Statistics"/><category term="TempDB"/><title type='text'>SQL Server Administration</title><subtitle type='html'>My blog about SQL Server database administration and development issues and trends.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-5839973492433590412</id><published>2013-09-06T12:27:00.000-04:00</published><updated>2013-09-06T12:27:47.083-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Certifications"/><category scheme="http://www.blogger.com/atom/ns#" term="MCM"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><title type='text'>Goodbye to MCM/MCSM Certifications</title><content type='html'>Originally I had planned to blog on my path to the Microsoft Certified Master certification but given Microsoft&#39;s recent decision to cancel the certification my plans changed.  At 1AM last Friday, the start to Labor Day weekend, Microsoft sent an email to the MCM/MCA community alerting us to the fact that effective October 1st, the advanced certifications will be no more. This abrupt decision coupled with the timing of the announcement, 10PM PST at the start to Labor Day weekend, raises many questions. The fact that this announcement comes almost two weeks after Microsoft announced plans to expand the testing for the program makes this announcement even more surprising. &lt;br /&gt;
&lt;br /&gt;
Tim Sneath from Microsoft Learning responding to comments on a Microsoft Connect item points out: &lt;br /&gt;
&lt;blockquote&gt;The truth is, for as successful as the program is for those who are in it, it reaches only a tiny proportion of the overall community. Only a few hundred people have attained the certification in the last few years, far fewer than we would have hoped. We wanted to create a certification that many would aspire to and that would be the ultimate peak of the Microsoft Certified program, but with only ~0.08% of all MCSE-certified individuals being in the program across all programs, it just hasn&#39;t gained the traction we hoped for.&lt;/blockquote&gt;&lt;br /&gt;
I certainly understand Microsoft&#39;s point here but it seems this could have been handled better.  My journey to MCM status took a little over a year once I had decided to go for it.  A long the way there were costs for exams, books, and online studying materials. I can only imagine that there are many people who have started their journey and are now told that they have until October 1st to complete it.  It seems Microsoft could given more notice to those people who are in the process of trying to achieve MCM or MCSM status.  Paul Randal has a survey on his blog asking &lt;a href=&quot;http://www.sqlskills.com/blogs/paul/survey-sql-server-mcm/&quot;&gt;Survey: SQL Server MCM cancellation – does it affect you?&lt;/a&gt;.  From a PR standpoint it seems Microsoft certainly could have handled this better. &lt;br /&gt;
&lt;br /&gt;
I had hoped to eventually recoup my investment in getting the MCM certification over time but now I wonder will anyone recognize or respect the MCM title once the program is cancelled.  I also wonder if everyone will understand what it takes to become a SQL MCM and the depth of knowledge it requires. Only time will tell as far as that goes but so far it doesn&#39;t look good. &lt;br /&gt;
&lt;br /&gt;
Even with that being said my path to MCM was a good one.  The knowledge I gained made me a better DBA long before I gained the MCM title.  I understand not everyone is able to afford the costs associated with the MCM program but I would certainly recommend that everyone take a look at the free MCM readiness videos on the Microsoft website. These videos along with blogs and books were the study material that I used. &lt;br /&gt;
&lt;br /&gt;
According to Time Sneath Microsoft is looking to modify or create a new advanced certification with the hopes of reaching more people.  I certainly welcome this and encourage them to do so but I hope that it will still require some sort of hands-on testing, which validates a user&#39;s knowledge and understanding, as opposed to just multiple choice questions. As others have stated we don&#39;t want to see a &quot;Masters Lite&quot; certification.  The Masters certification gives people something to strive towards and allows them to differentiate themselves from their peers hopefully whatever Microsoft comes up will still allow this.  &lt;br /&gt;
&lt;br /&gt;
I certainly hope Microsoft reconsiders cancelling the advanced certifications.</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/5839973492433590412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2013/09/goodbye-to-mcmmcsm-certifications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/5839973492433590412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/5839973492433590412'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2013/09/goodbye-to-mcmmcsm-certifications.html' title='Goodbye to MCM/MCSM Certifications'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-6654249239055775778</id><published>2013-05-02T13:40:00.000-04:00</published><updated>2013-08-19T11:37:56.607-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cursors"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="TempDB"/><title type='text'>SQL Cursors and TempDB</title><content type='html'>During a meeting yesterday the question was asked &quot;Aren&#39;t cursors stored in tempDB?&quot;&amp;nbsp; My initial response was no they will be rendered in memory but the correct answer is...&quot;It depends!&quot; Let me preface the rest of this blog post by saying when possible use set-based operations rather than cursors as cursors may be a hit on performance,&amp;nbsp;but as in all things SQL it is best to test.&lt;br /&gt;
&lt;br /&gt;
According to Books Online, Insensitive/Static cursors create a temporary copy of the data being accessed by the cursor in TempDB.&amp;nbsp; Likewise a Keyset cursor will build a keyset containing the uniquely identifiying columns for the cursor in TempDB.&amp;nbsp; Other cursors&amp;nbsp;Fast_Forward, Forward_Only, and Dynamic do not incur the overhead associated with storing all of the cursor data in TempDB.&amp;nbsp; By using the dmv, sys.dm_session_space_usage, I was able to&amp;nbsp;view the page allocations in&amp;nbsp;TempDB&amp;nbsp;using the different cursor types.&amp;nbsp; I noticed that there were page allocations to TempDB no matter which type of cursor was chosen but there were&amp;nbsp;far more page allocations for a&amp;nbsp;Keyset cursor &amp;nbsp;versus a Fast_Forward or Static cursor. &lt;br /&gt;
&lt;br /&gt;
When programming cursors I typically declare a cursor as Fast_Forward which creates a forward only static cursor.&amp;nbsp; This option performs better than other cursor options and seems to work well for me as I rarely have to move backwards through a cursor or modify the cursor data.&amp;nbsp; If I am updating or deleting data through a cursor then I will use a Forward_Only, Dynamic cursor.&amp;nbsp; I often have seen developers use the ISO syntax when creating cursors such as follows.&lt;br /&gt;
&lt;br /&gt;
&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW87XUU0AhGcFEiIGWEW10dA2Ep77OCpI9dv9HMMnluVTPv6RNws9Z7LkunlbGZE3ra_ndFT7JhARSiuL7kzaD_K3Kg4R6LZqc1evXimXpCE0dHYo_islmuVUvwNU5PW1k_NpWXEJCurZb/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt;1:  DECLARE cur_DBs CURSOR  
2:  FOR  
3:  SELECT Name  
4:  FROM sys.databases d  
5:  WHERE d.state_desc = &#39;ONLINE&#39;;  
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
By omitting the T-SQL cursor model in the declaration statement a Keyset, optimistic, non-scrollable cursor is created which will have its keyset materialized in TempDB. &lt;br /&gt;
&lt;br /&gt;
So there you have it.&amp;nbsp; Cursors will have some page allocations in TempDB but how many will depend on the type of cursor being declared.&amp;nbsp; When declaring cursors Fast_Forward cursors have less overhead and impact on TempDB.&amp;nbsp; So when reviewing or writing code remember to declare the type of cursor being created to reduce overhead. </content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/6654249239055775778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2013/05/sql-cursors-and-tempdb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/6654249239055775778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/6654249239055775778'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2013/05/sql-cursors-and-tempdb.html' title='SQL Cursors and TempDB'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-6418030858546043346</id><published>2013-03-05T11:09:00.002-05:00</published><updated>2013-08-19T11:26:17.506-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Clustering"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Memory"/><title type='text'>Dynamically Setting Max Server Memory on Cluster</title><content type='html'>I was recently given the task of adding a new node to our one node cluster with two SQL instances.&amp;nbsp; Due to politics within the company what was originally going to be a two-node SQL cluster had lingered around as a single node cluster for over a year. The issue I was confronted with was how to maximize memory usage on both nodes of the cluster but ensure that the two instances do not compete for memory if they happen to be running on the same node.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;The solution I came up with&lt;/span&gt; was to query the server to determine the physical node name that each of the SQL instances was running on.&amp;nbsp; If after running both queries it is determined that the instances are running on the same node then the max server memory for both servers is reduced to prevent contention.&amp;nbsp; Conversely, if both instances are running on different nodes then the max server memory is increased to leave just enough for the operating system.&amp;nbsp; I remembered that changing the max server memory on an instance causes a dump of the procedure cache so I had to add logic to determine if the max server memory needed to be changed or if it could be left as it was. &lt;br /&gt;
&lt;br /&gt;
There are several ways to get the code I created to run at startup.&amp;nbsp; One option is to create a stored procedure that runs the code and to have the stored procedure run at startup for the instance.&amp;nbsp; To execute the procedure this way the server must be configured to scan for startup procedures and you must run sp_procoption to set the stored procedure to run at startup. I chose to create a SQL Agent job to run the code and set the job schedule to run at agent startup to keep from having to reconfigure the server.&amp;nbsp; This way is also more transparent for any future DBAs.&lt;br /&gt;
&lt;br /&gt;
In order to change the max server memory setting I had to create a linked server on both servers that I was sure would have ALTER SETTINGS permission.&lt;br /&gt;
&lt;br /&gt;
Below is the code I created. &lt;br /&gt;
&lt;br /&gt;
&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW87XUU0AhGcFEiIGWEW10dA2Ep77OCpI9dv9HMMnluVTPv6RNws9Z7LkunlbGZE3ra_ndFT7JhARSiuL7kzaD_K3Kg4R6LZqc1evXimXpCE0dHYo_islmuVUvwNU5PW1k_NpWXEJCurZb/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt;1:  DECLARE @standalonememory    int      = 125000  
2:  DECLARE @sharedmemory      int      = 55000  
3:  DECLARE @SQLRPTHost       nvarchar(50)  
4:  DECLARE @SQLDWHost        nvarchar(50)   
5:  DECLARE @SQLRPTmaxmemory     int   
6:  DECLARE @SQLDWmaxmemory     int   
7:     
8:  --Retrieve the host name for SQLRPT host    
9:  SELECT @SQLRPTHost = CAST(SERVERPROPERTY(&#39;ComputerNamePhysicalNetBIOS&#39;) AS nvarchar(50))--Returns Node Name  
10:    
11:  -- Retrieve the host name for SQLDW      
12:  SELECT @SQLDWHost = ComputerNamePhysicalNetBIOS  
13:  FROM OPENQUERY (SYS_SQLDW,&#39;SELECT CAST(SERVERPROPERTY(&#39;&#39;ComputerNamePhysicalNetBIOS&#39;&#39;) AS nvarchar(50)) AS ComputerNamePhysicalNetBIOS&#39;);  
14:    
15:  --Retrieve the max server memory on current server    
16:  SELECT @SQLRPTmaxmemory = CAST(value as int)     
17:  FROM sys.configurations    
18:  WHERE name = &#39;max server memory (MB)&#39;   
19:    
20:  --Retrieve the max server memory on remote server    
21:  SELECT @SQLDWmaxmemory = value     
22:  FROM OPENQUERY(SYS_SQLDW, &#39;SELECT CAST(value as int) AS value  
23:      FROM sys.configurations  
24:      WHERE name = &#39;&#39;max server memory (MB)&#39;&#39;&#39;)    
25:    
26:  IF @SQLRPTHost = @SQLDWHost      --Both instances running on same host      
27:   BEGIN        
28:      --Max Memory should be set to sharedmemory if not set it       
29:      IF @SQLRPTmaxmemory != @sharedmemory       
30:       BEGIN         
31:        
32:         EXEC sp_configure &#39;Max Server Memory&#39;, @sharedmemory         
33:         RECONFIGURE        
34:    
35:       END     --Check the memory setting for the SQLDW instance       
36:    
37:      IF @SQLDWmaxmemory != @sharedmemory  
38:       BEGIN         
39:       
40:         EXEC (&#39;sp_configure &#39;&#39;Max Server Memory&#39;&#39;, &#39; + @sharedmemory + &#39;; RECONFIGURE&#39;) AT SYS_SQLDW        
41:     
42:       END        
43:    
44:      END     
45:         ELSE --Servers are each running on their own node      
46:          BEGIN         
47:            --Max Memory should be set to stand alone memory if not set it       
48:             IF @SQLRPTmaxmemory != @standalonememory       
49:    
50:              BEGIN         
51:                 
52:                EXEC sp_configure &#39;Max Server Memory&#39;, standalonememory         
53:                RECONFIGURE        
54:    
55:              END       
56:               
57:              --Check the memory setting for the SQLDW instance       
58:              IF @SQLDWmaxmemory != @standalonememory       
59:    
60:               BEGIN         
61:                    
62:                   EXEC (&#39;sp_configure &#39;&#39;Max Server Memory&#39;&#39;, &#39; + @standalonememory + &#39;; RECONFIGURE&#39;) AT SYS_SQLDW        
63:                   
64:    
65:                END        
66:              END   
&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/6418030858546043346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2013/03/dynamically-setting-max-server-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/6418030858546043346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/6418030858546043346'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2013/03/dynamically-setting-max-server-memory.html' title='Dynamically Setting Max Server Memory on Cluster'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-3186034282883896115</id><published>2012-10-31T17:28:00.001-04:00</published><updated>2013-08-19T11:28:39.987-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Auditing"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><title type='text'>Who Did that? The Default Trace Knows</title><content type='html'>We had an issue at work the other day where a database name was changed from MyDatabase to MyDatabase DO NOT USE.  This change caused the overnight ETL process to fail.  The question immediately arose, “When did this change and who made the change?”  Using the default trace in SQL Server I was quickly able to determine when and who made the change.&lt;br /&gt;
&lt;br /&gt;
The default trace is a system trace that is enabled by default in SQL Server 2005,2008, and 2012.  According to BOL this trace captures information mostly relating to configuration changes.  The 2012 documentation mentions that this functionality will be removed in a future version and we should use extended events instead.  I however, find the default trace particularly useful because it is not something that I have to configure and enable on a server-by-server basis .  For those of you that have viewed the database disk usage report in Management Studio, you are already familiar with the default trace.  The autogrow  / autoshrink events section of the database disk usage report is pulled from the default trace information.&lt;br /&gt;
&lt;br /&gt;
To view the default trace you can open it in SQL Profiler or use the function fn_trace_gettable to query the trace file.  It should be noted that the default trace rolls over after restarts and after the trace file reaches 20MB.  Only 5 trace files are maintained so on a busy system the default trace will not hold a lot of history but for the instance we had the other morning the default trace was perfect.&lt;br /&gt;
&lt;br /&gt;
Here is a copy of the script I use to query the default trace.  I choose to filter out the backup and restore information, event_id 115, to make the results easier to analyze.&lt;br /&gt;
&lt;br /&gt;
&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW87XUU0AhGcFEiIGWEW10dA2Ep77OCpI9dv9HMMnluVTPv6RNws9Z7LkunlbGZE3ra_ndFT7JhARSiuL7kzaD_K3Kg4R6LZqc1evXimXpCE0dHYo_islmuVUvwNU5PW1k_NpWXEJCurZb/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt;1:   DECLARE @Path    NVARCHAR(250);  
2:    
3:    SELECT  
4:      @Path = REVERSE(SUBSTRING(REVERSE([path]),  
5:      CHARINDEX(&#39;\&#39;, REVERSE([path])), 260)) + N&#39;log.trc&#39;      
6:    FROM  sys.traces  
7:    WHERE  is_default = 1;  
8:    
9:    SELECT DatabaseName,  
10:      Filename,  
11:      (Duration/1000)       AS Duration,  
12:      t.StartTime,  
13:      EndTime,  
14:      EventClass,  
15:      te.name  
16:      TextData,  
17:      LoginName,  
18:      ApplicationName,  
19:      Hostname,  
20:      (IntegerData * 8.0/1024)  AS ChangeInSize  
21:    FROM ::fn_trace_gettable(@Path, DEFAULT) t  
22:    JOIN sys.trace_events te  
23:      on t.EventClass = te.trace_event_id  
24:    WHERE t.StartTime &amp;gt; &#39;20121028&#39;  
25:      AND EventClass != 115  
26:    ORDER BY t.StartTime DESC;  
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
By passing the second parameter for fn_trace_gettable as “Default” the function reads the information from all of the trace files.   Joining the trace table with the sys.trace_events system view allows me to pull the name of the trace event.  &lt;br /&gt;
Here are the results after changing my database name from “Sample” to “Sample DO NOT USE”.&lt;br /&gt;
&lt;br /&gt;
The default trace can be a very useful tool for finding information about your server instance.  I urge you to investigate it further for yourself.  Bear in mind when using the default trace that depending on service restarts and the level of activity on the server that information captured by the default trace may not stick around very long. &lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/3186034282883896115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2012/10/who-did-that-default-trace-knows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/3186034282883896115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/3186034282883896115'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2012/10/who-did-that-default-trace-knows.html' title='Who Did that? The Default Trace Knows'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-2866928240371095515</id><published>2012-10-25T18:57:00.000-04:00</published><updated>2012-10-25T18:58:08.494-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Memory"/><category scheme="http://www.blogger.com/atom/ns#" term="NUMA"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLOS"/><title type='text'>SQL Server NUMA Surprise</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:OfficeDocumentSettings&gt;
  &lt;o:AllowPNG/&gt;
 &lt;/o:OfficeDocumentSettings&gt;
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;Today I
welcome myself back to my blog after months of neglect, sorry blog.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;Today as
part of my MCM prep I decided to dive into Software NUMA and SQL Server.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;I have read a lot of information regarding
Software NUMA over the years but felt that I needed to dive deeper into NUMA to
better understand exactly how and when to configure it.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;As part of my
studies I came across two blog posts from Johnathan Kehayias (&lt;/span&gt;&lt;a href=&quot;http://sqlskills.com/blogs/jonathan/&quot;&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;Blog&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;http://twitter.com/SQLPoolBoy&quot;&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;Twitter&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;) regarding NUMA.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;In his second
blog on NUMA &lt;/span&gt;&lt;a href=&quot;http://sqlskills.com/blogs/jonathan/post/SQL-Server-and-Soft-NUMA.aspx&quot;&gt;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;SQL Server and Soft
NUMA&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Johnathan does a great
job of walking through how he calculated the CPU mask to divide a 24 CPU server
into 4 NUMA nodes.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;After reading through
the blog post I was shocked to find out at the end that Johnathan discovered
NUMA does not work as reported in BOL and MSDN.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 8.0pt; margin-left: .5in; margin-right: .5in; margin-top: 0in;&quot;&gt;
&quot;&lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;The
benefits of soft-NUMA include reducing I/O and lazy writer bottlenecks on
computers with many CPUs and no hardware NUMA. There is a single I/O thread and
a single lazy writer thread for each NUMA node. Depending on the usage of the
database, these single threads may be a significant performance bottleneck.
Configuring four soft-NUMA nodes provides four I/O threads and four lazy writer
threads, which could increase performance.&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
After configuring 4 Soft NUMA nodes SQL Server still only
created one lazy writer thread. &lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;This is
contrary to BOL which as you can see states that SQL Server will create a lazy writer for each
Soft NUMA node.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;In his post Johnathan
references a post from Bob Dorr, &lt;span style=&quot;mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;&quot;&gt;an escalation engineer at Microsoft in the Product Support division, called &lt;/span&gt;&lt;a href=&quot;http://blogs.msdn.com/b/psssql/archive/2010/04/02/how-it-works-soft-numa-i-o-completion-thread-lazy-writer-workers-and-memory-nodes.asp&quot;&gt;How
It Works: Soft NUMA, I/O Completion Thread, Lazy Writer Workers and Memory
Nodes.&lt;/a&gt; In his post Bob explains that additional lazy writer threads are only created
for Hard NUMA nodes and not Soft NUMA nodes.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
I find this particularly interesting because this goes
against everything I studied for the MCITP: Database Administrator
certification.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Given this new
information from Bob Dorr and Johnathan Kehayias, the next question is why would
I implement Soft NUMA?&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;Soft NUMA will
handle I/O completion threads.&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp; &lt;/span&gt;When we
think of I/O completion threads we would generally think this means writing
data to transaction and data files but as Bob Dorr points out, I/O completion
threads actually handle connection requests and TDS data.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
If you are considering implementing Soft NUMA or just want
to learn more about NUMA I urge you to read the aforementioned blog posts from
Johnathan and Bob.&lt;/div&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;267&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin-top:0in;
 mso-para-margin-right:0in;
 mso-para-margin-bottom:8.0pt;
 mso-para-margin-left:0in;
 line-height:107%;
 mso-pagination:widow-orphan;
 font-size:11.0pt;
 font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:&quot;Times New Roman&quot;;
 mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/2866928240371095515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2012/10/sql-server-numa-surprise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/2866928240371095515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/2866928240371095515'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2012/10/sql-server-numa-surprise.html' title='SQL Server NUMA Surprise'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-2197764991165541781</id><published>2012-06-02T00:09:00.001-04:00</published><updated>2013-08-19T11:32:31.408-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Indexes"/><category scheme="http://www.blogger.com/atom/ns#" term="Internals"/><category scheme="http://www.blogger.com/atom/ns#" term="Statistics"/><title type='text'>Index Statistics Norecompute</title><content type='html'>&lt;div style=&quot;color: white;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I’ve  been meaning to write about this one for a while but life has gotten in  the way. &amp;nbsp;There seems to be some confusion over the index setting  statistics norecompute so I thought I would write about it in hopes of  shedding some light on the subject.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When  you specify an alter index statement, one of the arguments you may  specify is STATISTICS_NORECOMPUTE ON or OFF. &amp;nbsp;This setting tells the  database engine whether or not it should automatically recompute  distribution statistics for the index. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; When  you create an index statistics are automatically created for the  associated index. &amp;nbsp;By default SQL Server will automatically update  statistics when 20% + 500 columns of data have been modified. &amp;nbsp;So on a  table with 100,000 rows once 20,500 of the column data has changed  statistics will be recomputed or in the case of SQL Server 2005 and 2008  the statistic will be marked for updating. &amp;nbsp;&amp;nbsp;In 2005 and 2008 SQL  Server will flag statistics as out-of-date and will update statistics  the next time they are accessed.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This  is where the STATISTICS_NORECOMPUTE setting for Alter Index comes into  play. &amp;nbsp;Setting STATISTICS_NORECOMPUTE to ON for an index will disable  the auto updating of statistics for the index once the threshold for  changed data has been reached. &amp;nbsp;This is the same effect as creating  statistics with NORECOMPUTE except you don’t have to drop and recreate  the statistic to change the setting. &amp;nbsp;In order to enable auto updating  of index statistics once it has been disabled simply rebuild the index  with the NORECOMPUTE OFF parameter.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The  confusion for this setting comes from the fact that people think  NORECOMPUTE refers to the updating of statistics during an index  rebuild. &amp;nbsp;The thought is that you can speed up an index rebuild by  telling SQL Server not to recomputed statistics during the rebuild.  &amp;nbsp;This is not the case. &amp;nbsp;SQL Server will update index statistics during a  rebuild regardless of the NORECOMPUTE setting for the index. &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;To  validate this I did a test. &amp;nbsp;I used the sys.stats system view along  with the STATS_DATE function to return the statistics information for my  table along with the date and time the statistics were created.&amp;nbsp; The STATS_DATE function accepts the Object_Id and the Stats_Id from sys.stats and returns the date the statistics were last update.&amp;nbsp; I ran the following statement: &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;pre style=&quot;background-image: URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW87XUU0AhGcFEiIGWEW10dA2Ep77OCpI9dv9HMMnluVTPv6RNws9Z7LkunlbGZE3ra_ndFT7JhARSiuL7kzaD_K3Kg4R6LZqc1evXimXpCE0dHYo_islmuVUvwNU5PW1k_NpWXEJCurZb/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;&quot;&gt;&lt;code style=&quot;color: black; word-wrap: normal;&quot;&gt;1:  ALTER INDEX PK_INF_GROUP  
2:  ON INF_GROUP  
3:  REBUILD  
4:  WITH( STATISTICS_NORECOMPUTE = ON )  
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: white; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;Following that I ran this query to view the statistics information: &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
&lt;pre  style=&quot;font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW87XUU0AhGcFEiIGWEW10dA2Ep77OCpI9dv9HMMnluVTPv6RNws9Z7LkunlbGZE3ra_ndFT7JhARSiuL7kzaD_K3Kg4R6LZqc1evXimXpCE0dHYo_islmuVUvwNU5PW1k_NpWXEJCurZb/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;&quot;&gt;&lt;code style=&quot;color:#000000;word-wrap:normal;&quot;&gt;1:  SELECT *  
2:      , StatDate = STATS_DATE(s.object_id, s.stats_id)  
3:  FROM sys.STATS s  
4:  WHERE object_id = object_id(&#39;INF_GROUP&#39;)  
&lt;/code&gt;&lt;/pre&gt;&lt;span style=&quot;background-color: transparent; color: grey; font-family: &#39;Courier New&#39;; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: white; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;From  the results below I can see that although no_recompute is set for my  index the statistics for the index were recomputed.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: black; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;background-color: transparent; color: white; font-family: Calibri; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;img height=&quot;221px;&quot; src=&quot;https://lh4.googleusercontent.com/ZlO-vzOvAWNbO2Hv2_sip_pvAhcca9TbhhW4y9NhMpLWLkDU05wG8WQ4Ae4YsINzgt3kAOMsEMX3b4Cj9kuIuqgkemUE1s0W7BueXAnaYCehCng3gso&quot; width=&quot;624px;&quot; /&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: white; font-family: Calibri; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; You  can also see from these results that the other statistics for my table  were not updated during the index rebuild. &amp;nbsp;&amp;nbsp;By viewing the details of  the statistics in SQL Server Management Studio I can further see that  the statistics were updated using a full scan and not a sampling of the  data.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; There  may be some situations where you would want to disable the automatic  updating of statistics.&amp;nbsp; One that comes to mind is if your data is  skewed and sampling does not provide an accurate enough picture of the  distribution of data to allow SQL Server to choose an optimal execution  plan. &amp;nbsp;However, you cannot disable the updating of index statistics by  setting the STATISTICS_NORECOMPUTE parameter to On during an index  rebuild.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span style=&quot;background-color: transparent; color: white; font-family: Calibri; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Kimberly Tripp has blogged extensively about index statistics and I suggest you check out her blog at &lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/goog_1070454136&quot; style=&quot;color: blue; font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: transparent; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;&quot;&gt;www.SQLSkills.com/blogs/Kimberly&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: white; font-family: Calibri; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;color: white; font-family: inherit;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt; &lt;/span&gt;for more in-depth inform&lt;/span&gt;ation on statistics. &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/2197764991165541781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2012/06/index-statistics-norecompute.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/2197764991165541781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/2197764991165541781'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2012/06/index-statistics-norecompute.html' title='Index Statistics Norecompute'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/ZlO-vzOvAWNbO2Hv2_sip_pvAhcca9TbhhW4y9NhMpLWLkDU05wG8WQ4Ae4YsINzgt3kAOMsEMX3b4Cj9kuIuqgkemUE1s0W7BueXAnaYCehCng3gso=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-5249229230280107152</id><published>2012-04-30T17:50:00.000-04:00</published><updated>2012-04-30T17:51:06.138-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Conferences"/><category scheme="http://www.blogger.com/atom/ns#" term="Networking"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Saturday"/><title type='text'>SQL Saturday #130</title><content type='html'>This weekend I attended my first SQL Saturday event here in Jacksonville.&amp;nbsp; I highly recommend anyone that has an opportunity to attend one of these events to go ahead and attend.&amp;nbsp; The sessions were great and I was also able to network with people that are as enthusiastic about SQL Server as I am.&lt;br /&gt;
&lt;br /&gt;
My company was actually nice enough to spring for the SQL Saturday Pre-Conference, which was a presentation from MVP Kevin Kline.&amp;nbsp; Kevin gave an excellent all day presentation on &lt;span id=&quot;inner&quot;&gt;Troubleshooting &amp;amp; Performance Tuning SQL Server.&amp;nbsp; This presentation included an explanation of wait stats, monitoring, DMVs, and many other topics.&amp;nbsp; Unfortunately I was forced to leave the Pre-Con a bit early to officiate a play-in game in Orlando for the Florida State lacrosse tournament but I still came away with a few takeaways from the presentation.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span id=&quot;inner&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span id=&quot;inner&quot;&gt;The actual SQL Saturday conference was as informative as the Pre-Con.&amp;nbsp; I followed the DBA track all afternoon but there were also tracks for personal development, BI, and BI &amp;amp; Data Warehouse that were available.&amp;nbsp; My morning started with a presentation by &lt;/span&gt;Gareth Swanepoel on column-store indexes.&amp;nbsp; The next presentation was done by Bradley Ball, aka @sqlballs, on page and row compression.&amp;nbsp; This presentation I found to be very informative because it explained page and row compression at the storage level as well as providing a demo of the enabling page and row compression.Christina Leo was up next on SQL Server Internals followed by SQLRockstar with a presentation on monitoring in a virtual environment.&amp;nbsp; My old manager, Chad Churchwell, presented next on SQL 2012 high availability groups.&amp;nbsp; I then switched to the BI track to catch a presentation from Brian Knight on developing faster with SQL 2012.&amp;nbsp; Let me just tell you, I hope I can become as relaxed and natural presenting as Brian Knight is.&amp;nbsp; I&#39;ll have to keep practicing to reach that level so keep your eye out for one of my presentations coming soon.&lt;br /&gt;
&lt;br /&gt;
All in all a great day and oh yeah the after party was fun too.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/5249229230280107152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2012/04/sql-saturday-130.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/5249229230280107152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/5249229230280107152'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2012/04/sql-saturday-130.html' title='SQL Saturday #130'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3144552297517789091.post-7166082429487278339</id><published>2012-04-22T20:24:00.000-04:00</published><updated>2012-04-22T20:24:26.956-04:00</updated><title type='text'>Welcome</title><content type='html'>&lt;h2&gt;
&lt;/h2&gt;
Welcome to my blog.&amp;nbsp; Here I hope to periodically write posts regarding SQL Server and other IT and perhaps some non-IT related things that I find interesting.&amp;nbsp; I hope you enjoy the posts.</content><link rel='replies' type='application/atom+xml' href='http://www.sqlsherwin.com/feeds/7166082429487278339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.sqlsherwin.com/2012/04/welcome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/7166082429487278339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3144552297517789091/posts/default/7166082429487278339'/><link rel='alternate' type='text/html' href='http://www.sqlsherwin.com/2012/04/welcome.html' title='Welcome'/><author><name>Sherwin Anderson</name><uri>http://www.blogger.com/profile/08813719958857760391</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinC04kpTWujhaVEkGJdNsQAFT-QRWIKiL8IB7wE7eARyrr9QgJgX1L3d37X2IhuD3KpEMxJ8cP3SQ--WMsrsOzDkZuzLLKqxeeKc-gHE6QmysHXyyBm51jC2ZQbG9g1-8/s220/IMG_0240-2.JPG'/></author><thr:total>0</thr:total></entry></feed>