<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>In Recovery...</title>
    <description>Paul S. Randal on SQL Server</description>
    <link>http://www.sqlskills.com/BLOGS/PAUL/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://www.sqlskills.com/BLOGS/PAUL/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.sqlskills.com/</blogChannel:blink>
    <dc:creator>Paul S. Randal</dc:creator>
    <dc:title>In Recovery...</dc:title>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PaulSRandal" /><feedburner:info uri="paulsrandal" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Using fn_dblog, fn_dump_dblog, and restoring with STOPBEFOREMARK to an LSN</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I&amp;#39;ve blogged a bunch about using the undocumented &lt;font face="courier new,courier"&gt;fn_dblog&lt;/font&gt; function I helped write (and I&amp;#39;ve got a lot more to come :-) but here&amp;#39;s one I haven&amp;#39;t mentioned on my blog before: &lt;font face="courier new,courier"&gt;fn_dump_dblog&lt;/font&gt; (although I have talked about it at SQL Connections last year).&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Here&amp;#39;s a scenario: someone dropped a table and you want to find out when it happened and maybe who did it. The default trace has also wrapped so you can&amp;#39;t get the DDL trace from there anymore.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;If the transaction log for the &lt;font face="courier new,courier"&gt;DROP&lt;/font&gt; hasn&amp;#39;t yet been cleared from the active portion of the log then you&amp;#39;d be able to use fn_dblog to search through the log for the information you need. &lt;/font&gt;&lt;font face="verdana,geneva" size="2"&gt;You might even be able to look in the inactive portion of the log by using trace flag 2536, which instructs the log reader to ignore the log truncation point and dump all possible log records from the log.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;But what do you do if the pertinent log records just don&amp;#39;t exist in the log anymore? They&amp;#39;re only in your log backups. You could tediously inch your way through restoring the log backups a few seconds at a time until you find the point at which the &lt;font face="courier new,courier"&gt;DROP&lt;/font&gt; took place, and then restore to just before that point so you can get the data back.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Or you could save a whole ton of time and use &lt;font face="courier new,courier"&gt;fn_dump_dblog&lt;/font&gt; which allows you to dump and search log records from a log backup file, without having to restore the database!&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face="verdana,geneva" size="2"&gt;Finding a &lt;font face="courier new,courier"&gt;DROP&lt;/font&gt; in the log&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Here&amp;#39;s an example - I&amp;#39;m going to create a table, populate it, back it up, then drop it.&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;USE MASTER;&lt;br /&gt;
	GO&lt;br /&gt;
	IF DATABASEPROPERTYEX (&amp;#39;FNDBLogTest&amp;#39;, &amp;#39;Version&amp;#39;) &amp;gt; 0 DROP DATABASE FNDBLogTest;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;CREATE DATABASE FNDBLogTest;&lt;br /&gt;
	GO&lt;br /&gt;
	USE FNDBLogTest;&lt;br /&gt;
	GO&lt;br /&gt;
	SET NOCOUNT ON;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Create&amp;nbsp;tables to play with&lt;br /&gt;
	CREATE TABLE ProdTable (c1 INT IDENTITY, c2 DATETIME DEFAULT GETDATE (),&amp;nbsp;c3 CHAR (25) DEFAULT &amp;#39;a&amp;#39;);&lt;br /&gt;
	CREATE TABLE ProdTable2 (c1 INT IDENTITY,&amp;nbsp;c2 DATETIME DEFAULT GETDATE (),&amp;nbsp;c3 CHAR (25) DEFAULT &amp;#39;a&amp;#39;);&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;INSERT INTO ProdTable DEFAULT VALUES;&lt;br /&gt;
	GO 1000&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Take initial backups&lt;br /&gt;
	BACKUP DATABASE FNDBLogTest TO DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Full.bak&amp;#39; WITH INIT;&lt;br /&gt;
	GO&lt;br /&gt;
	BACKUP LOG FNDBLogTest TO DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Log1.bak&amp;#39; WITH INIT;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;INSERT INTO ProdTable2 DEFAULT VALUES;&lt;br /&gt;
	GO 1000&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Now I&amp;#39;ll drop the table and add some more log records:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DROP TABLE ProdTable;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;INSERT INTO ProdTable2 DEFAULT VALUES;&lt;br /&gt;
	GO 1000&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Now how can we find the point at which the table was dropped?&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [Current LSN],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [Operation],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;[Context],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [Transaction ID],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [Description]&lt;br /&gt;
	FROM fn_dblog (NULL, NULL),&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SELECT [Transaction ID] AS tid FROM fn_dblog (NULL, NULL) WHERE [Transaction Name] LIKE &amp;#39;%DROPOBJ%&amp;#39;) fd&lt;br /&gt;
	WHERE [Transaction ID] = fd.tid;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Current LSN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Operation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Context&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Transaction ID Description&lt;br /&gt;
	---------------------- --------------- ----------------- -------------&amp;nbsp; --------------------------------&lt;br /&gt;
	0000009d:0000021e:0001 LOP_BEGIN_XACT&amp;nbsp; LCX_NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; DROPOBJ; &amp;lt;snip&amp;gt;&lt;br /&gt;
	0000009d:0000021e:0002 LOP_LOCK_XACT&amp;nbsp;&amp;nbsp; LCX_NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:0003 LOP_LOCK_XACT&amp;nbsp;&amp;nbsp; LCX_NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:0008 LOP_MODIFY_ROW&amp;nbsp; LCX_IAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:0009 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Deallocated 0001:0000009b&lt;br /&gt;
	0000009d:0000021e:000a LOP_MODIFY_ROW&amp;nbsp; LCX_IAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:000b LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Deallocated 0001:0000009c&lt;br /&gt;
	0000009d:0000021e:000c LOP_MODIFY_ROW&amp;nbsp; LCX_IAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:000d LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Deallocated 0001:0000009d&lt;br /&gt;
	0000009d:0000021e:000e LOP_MODIFY_ROW&amp;nbsp; LCX_IAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:000f LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Deallocated 0001:0000009e&lt;br /&gt;
	0000009d:0000021e:0010 LOP_MODIFY_ROW&amp;nbsp; LCX_IAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:0011 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Deallocated 0001:0000009f&lt;br /&gt;
	0000009d:0000021e:0012 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Deallocated 0001:0000009a&lt;br /&gt;
	0000009d:0000021e:0013 LOP_HOBT_DDL&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&amp;nbsp; Action 3 on HoBt 0xd:100 &amp;lt;snip&amp;gt;&lt;br /&gt;
	0000009d:0000021e:0014 LOP_DELETE_ROWS LCX_MARK_AS_GHOST 0000:00001ff7&amp;nbsp; &lt;br /&gt;
	0000009d:0000021e:0032 LOP_LOCK_XACT&amp;nbsp;&amp;nbsp; LCX_NULL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0000:00001ff7&lt;br /&gt;
	&amp;lt;snip&amp;gt;&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Cool eh?&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;Now we take another log backup, which clears the log, and contains the log we just looked at.&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font size="2"&gt;&lt;font face="Courier New"&gt;BACKUP LOG FNDBLogTest TO DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Log2.bak&amp;#39; WITH INIT;&lt;br /&gt;
	GO&lt;/font&gt; &lt;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva"&gt;&lt;font size="2"&gt;&lt;strong&gt;Restoring using STOPBEFOREMARK&lt;/strong&gt;&amp;nbsp;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The LSN for the &lt;font face="courier new,courier"&gt;LOP_BEGIN_XACT&lt;/font&gt; log record is where we need to restore to just before.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;To do that we need to convert the LSN to the format necessary when using the &lt;font face="courier new,courier"&gt;STOPBEFOREMAR&lt;/font&gt;&lt;font face="courier new,courier"&gt;K&lt;/font&gt; option for &lt;font face="courier new,courier"&gt;RESTORE&lt;/font&gt;. The option is documented but the format is not - how helpful!!&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The LSN we have from the log dump above is &lt;font face="courier new,courier"&gt;0000009d:0000021e:0001&lt;/font&gt;. To convert it:&lt;/font&gt; 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Take the rightmost 4 characters (2-byte log record number) and convert to a&amp;nbsp;5-character&amp;nbsp;decimal number, including leading zeroes, to get stringA&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Take the middle number (4-byte log block number) and convert to a 10-character decimal number, including leading zeroes, to get stringB&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Take the leftmost number (4-byte VLF sequence number) and convert to a decimal number, with no leading zeroes, to get stringC&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font size="2"&gt;The LSN string we need is stringC + stringB + stringA&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;So &lt;font face="courier new,courier"&gt;0000009d:0000021e:0001&lt;/font&gt; becomes &amp;#39;157&amp;#39; + &amp;#39;0000000542&amp;#39; + &amp;#39;00001&amp;#39; = &amp;#39;157000000054200001&amp;#39;.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The restore sequence to restore to just before the DROP is therefore:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;RESTORE DATABASE FNDBLogTest2&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Full.bak&amp;#39;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; WITH MOVE &amp;#39;FNDBLogTest&amp;#39; TO &amp;#39;C:\SQLskills\FNDBLogTest2.mdf&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVE &amp;#39;FNDBLogTest_log&amp;#39; TO &amp;#39;C:\SQLskills\FNDBLogTest2_log.ldf&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; REPLACE, NORECOVERY;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;RESTORE LOG FNDBLogTest2&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Log1.bak&amp;#39;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; WITH NORECOVERY;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;RESTORE LOG FNDBLogTest2&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Log2.bak&amp;#39;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; WITH STOPBEFOREMARK = &amp;#39;lsn:157000000054200001&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; NORECOVERY;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;RESTORE DATABASE FNDBLogTest2 WITH RECOVERY;&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;And the table is there again, right before the point it was dropped.&amp;nbsp;You can see where I used the constructed LSN string in the final log restore.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face="verdana,geneva" size="2"&gt;Using fn_dump_dblog&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;So what if the log records are no longer in the log? You can use the &lt;font face="courier new,courier"&gt;fn_dump_dblog&lt;/font&gt; function. For instance, here is how you use it to look in the &lt;font face="courier new,courier"&gt;FNDBLogTest_Log2.bak&lt;/font&gt; backup:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT COUNT (*) FROM fn_dump_dblog (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL, NULL, &amp;#39;DISK&amp;#39;, 1, &amp;#39;D:\SQLskills\FNDBLogTest_Log2.bak&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;You have to specify all the &lt;font face="courier new,courier"&gt;DEFAULT&lt;/font&gt; parameters (63 of them!) or it won&amp;#39;t work. The other parameters are:&lt;/font&gt; 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Starting LSN (usually just NULL)&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Ending LSN (again, usually just NULL)&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Type of file (DISK or TAPE)&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Backup number within the backup file (for multi-backup media sets)&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;File name&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;So you could do the same query as I did above:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;[Current LSN],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;[Operation],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;[Context],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;[Transaction ID],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;[Description]&lt;br /&gt;
	FROM fn_dump_dblog (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;NULL, NULL, &amp;#39;DISK&amp;#39;, 1, &amp;#39;D:\SQLskills\FNDBLogTest_Log2.bak&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT),&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;(SELECT [Transaction ID] AS tid&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp; FROM fn_dump_dblog (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, NULL, &amp;#39;DISK&amp;#39;, 1, &amp;#39;D:\SQLskills\FNDBLogTest_Log2.bak&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE [Transaction Name] LIKE &amp;#39;%DROPOBJ%&amp;#39;) fd&lt;br /&gt;
	WHERE [Transaction ID] = fd.tid;&lt;br /&gt;
	GO&amp;nbsp;&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Which works perfectly, but takes much longer to run.&amp;nbsp;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;So maybe you&amp;#39;re wondering what all the other parameters to &lt;font face="courier new,courier"&gt;fn_dump_dblog&lt;/font&gt; are for? They are for specifying the media families of a media set that has more than one media family.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Here&amp;#39;s an example using a log backup striped across two files:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;BACKUP LOG FNDBLogTest&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; TO DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Log3_1.bak&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DISK = &amp;#39;D:\SQLskills\FNDBLogTest_Log3_2.bak&amp;#39;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; WITH INIT;&lt;br /&gt;
	GO&amp;nbsp;&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;If I try to use fn_dump_dblog and only specify a single file, I get an error:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT COUNT (*) FROM fn_dump_dblog (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, NULL, &amp;#39;DISK&amp;#39;, 1, &amp;#39;D:\SQLskills\FNDBLogTest_Log3_1.bak&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Msg 3132, Level 16, State 1, Line 1&lt;br /&gt;
	The media set has 2 media families but only 1 are provided. All members must be provided.&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;So I have to specify both media families:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT COUNT (*) FROM fn_dump_dblog (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL, NULL, &amp;#39;DISK&amp;#39;, 1, &amp;#39;D:\SQLskills\FNDBLogTest_Log3_1.bak&amp;#39;,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;D:\SQLskills\FNDBLogTest_Log3_2.bak&amp;#39;, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face="verdana,geneva" size="2"&gt;Summary&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;So there you go - some more powerful tools to add to your disaster recovery arsenal.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Enjoy!&lt;/font&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/zS2m2EZCDu8" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/zS2m2EZCDu8/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Using-fn_dblog-fn_dump_dblog-and-restoring-with-STOPBEFOREMARK-to-an-LSN.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=148e783a-07eb-43d9-a5e5-cca27ac193da</guid>
      <pubDate>Thu, 17 May 2012 03:05:00 -0700</pubDate>
      <category>Backup/Restore</category>
      <category>Disaster Recovery</category>
      <category>Transaction Log</category>
      <category>Undocumented commands</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=148e783a-07eb-43d9-a5e5-cca27ac193da</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=148e783a-07eb-43d9-a5e5-cca27ac193da</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Using-fn_dblog-fn_dump_dblog-and-restoring-with-STOPBEFOREMARK-to-an-LSN.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=148e783a-07eb-43d9-a5e5-cca27ac193da</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=148e783a-07eb-43d9-a5e5-cca27ac193da</feedburner:origLink></item>
    <item>
      <title>Understanding data vs log usage for spills in tempdb</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Earlier this morning I noticed a discussion on the SQL MCM distribution list (that all the original MCM instructors are part of) that was trying to make sense of a huge disparity between tempdb data file usage and log file usage. I explained the answer and thought I&amp;#39;d share it with you all too. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The situation was a tempdb where the data files grew from 30GB to 120GB, running out of space on the disk, but the tempdb log file did not grow at all from its initial size of 1GB! How could that be? &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;One of the things to consider about tempdb is that logging in tempdb is ultra-efficient. Log records for updates in tempdb, for instance, only log the before image of the data instead of logging both before and after images. There is no need to log the after image - as that is only used for the REDO portion of crash recovery. As tempdb never gets crash-recovered, REDO never occurs. The before image *is* necessary, however, because transactions can be rolled back in tempdb, just like other databases, and so the before image of an update must be available to be able to successfully roll back the update. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Getting to the question though, I can easily explain the observed behavior by considering how a sort spill happens with tempdb. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I can simulate this using a gnarly query on the &lt;font face="courier new,courier"&gt;SalesDB&lt;/font&gt; database you can download from our &lt;/font&gt;&lt;a href="http://www.sqlskills.com/PastConferences.asp" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;resources page&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; (see the top of the page for the sample databases to download). &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I&amp;#39;m going to do a join of my &lt;font face="courier new,courier"&gt;Sales&lt;/font&gt; and &lt;font face="courier new,courier"&gt;Products&lt;/font&gt; tables and then sort the multi-million row result set by product name: &lt;/font&gt;
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT S.*, P.* from Sales S&lt;br /&gt;
	JOIN Products P ON P.ProductID = S.ProductID&lt;br /&gt;
	ORDER BY P.Name;&lt;br /&gt;
	GO&amp;nbsp; &lt;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The query plan for this is (using &lt;/font&gt;&lt;a href="http://www.sqlsentry.net/plan-explorer/sql-server-query-view.asp" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Plan Explorer&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;): &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f5%2ftempdbquery2.jpg" alt="" /&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I know that the sort is going to spill out of memory into tempdb in this case. First I checkpoint tempdb (to clear out the log) and then after running the query, I can analyze the transaction log for tempdb.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Looking at the operation in the log:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT &lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Current LSN],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Operation],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Context],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Transaction ID],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[Log Record Length],&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[Description]&lt;br /&gt;
	FROM fn_dblog (null, null);&lt;br /&gt;
	GO&lt;br /&gt;
	&lt;br /&gt;
	Current LSN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Operation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Context&amp;nbsp; Transaction ID Len Description&lt;br /&gt;
	---------------------- --------------- -------- -------------- --- ----------------------------------------------------------&lt;br /&gt;
	000000c0:00000077:0001 LOP_BEGIN_XACT&amp;nbsp; LCX_NULL 0000:00005e4d&amp;nbsp; 120 sort_init;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0002 LOP_BEGIN_XACT&amp;nbsp; LCX_NULL 0000:00005e4e&amp;nbsp; 132 FirstPage Alloc;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0003 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e4e&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa48&lt;br /&gt;
	000000c0:00000077:0004 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e4e&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa48;Allocated 0001:0000aa49;&lt;br /&gt;
	000000c0:00000077:0005 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e4d&amp;nbsp; 80&amp;nbsp; Allocated 0001:00000123&lt;br /&gt;
	000000c0:00000077:0006 LOP_FORMAT_PAGE LCX_IAM&amp;nbsp; 0000:00005e4d&amp;nbsp; 84&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;br /&gt;
	000000c0:00000077:0007 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e4e&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:0009 LOP_COMMIT_XACT LCX_NULL 0000:00005e4e&amp;nbsp; 52&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;br /&gt;
	000000c0:00000077:000a LOP_BEGIN_XACT&amp;nbsp; LCX_NULL 0000:00005e4f&amp;nbsp; 128 soAllocExtents;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:000b LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e4f&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa50&lt;br /&gt;
	000000c0:00000077:000c LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e4f&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa50;Allocated 0001:0000aa51;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:000d LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e4f&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:000e LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e4f&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa58&lt;br /&gt;
	000000c0:00000077:000f LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e4f&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa58;Allocated 0001:0000aa59;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0010 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e4f&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:0011 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e4f&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa60&lt;br /&gt;
	000000c0:00000077:0012 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e4f&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa60;Allocated 0001:0000aa61;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0013 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e4f&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:0014 LOP_COMMIT_XACT LCX_NULL 0000:00005e4f&amp;nbsp; 52&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;br /&gt;
	000000c0:00000077:0015 LOP_BEGIN_XACT&amp;nbsp; LCX_NULL 0000:00005e50&amp;nbsp; 128 soAllocExtents;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0016 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa68&lt;br /&gt;
	000000c0:00000077:0017 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e50&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa68;Allocated 0001:0000aa69;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0018 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:0019 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa70&lt;br /&gt;
	000000c0:00000077:001a LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e50&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa70;Allocated 0001:0000aa71;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:001b LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:001c LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa78&lt;br /&gt;
	000000c0:00000077:001d LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e50&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa78;Allocated 0001:0000aa79;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:001e LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:001f LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&amp;nbsp; Allocated 1 extent(s) starting at page 0001:0000aa80&lt;br /&gt;
	000000c0:00000077:0020 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005e50&amp;nbsp; 88&amp;nbsp; Allocated 0001:0000aa80;Allocated 0001:0000aa81;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000c0:00000077:0021 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:00005e50&amp;nbsp; 60&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;br /&gt;
	000000c0:00000077:0022 LOP_COMMIT_XACT LCX_NULL 0000:00005e50&amp;nbsp; 52&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;br /&gt;
	000000c0:00000077:0023 LOP_BEGIN_XACT&amp;nbsp; LCX_NULL 0000:00005e51&amp;nbsp; 128 soAllocExtents;&amp;lt;snip&amp;gt;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;&amp;lt;snip&amp;gt;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;000000cd:00000088:01d3 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:000078fc&amp;nbsp; 60&amp;nbsp; Deallocated 1 extent(s) starting at page 0001:00010e50&lt;br /&gt;
	000000cd:00000088:01d4 LOP_COMMIT_XACT LCX_NULL 0000:000078fc&amp;nbsp; 52&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;br /&gt;
	000000cd:00000088:01d5 LOP_BEGIN_XACT&amp;nbsp; LCX_NULL 0000:000078fd&amp;nbsp; 140 ExtentDeallocForSort;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000cd:00000088:01d6 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_IAM&amp;nbsp; 0000:000078fd&amp;nbsp; 60&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;br /&gt;
	000000cd:00000088:01d7 LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:000078fd&amp;nbsp; 88&amp;nbsp; Deallocated 0001:00010e68;Deallocated 0001:00010e69;&amp;lt;snip&amp;gt;&lt;br /&gt;
	000000cd:00000088:01d8 LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:000078fd&amp;nbsp; 60&amp;nbsp; Deallocated 1 extent(s) starting at page 0001:00010e68&lt;br /&gt;
	000000cd:00000088:01d9 LOP_COMMIT_XACT LCX_NULL 0000:000078fd&amp;nbsp; 52&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;br /&gt;
	000000cd:00000088:01da LOP_MODIFY_ROW&amp;nbsp; LCX_PFS&amp;nbsp; 0000:00005fac&amp;nbsp; 80&amp;nbsp; Deallocated 0001:00000109&lt;br /&gt;
	000000cd:00000088:01db LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_SGAM 0000:00005fac&amp;nbsp; 60&amp;nbsp; ClearBit 0001:00000108&lt;br /&gt;
	000000cd:00000088:01dc LOP_SET_BITS&amp;nbsp;&amp;nbsp;&amp;nbsp; LCX_GAM&amp;nbsp; 0000:00005fac&amp;nbsp; 60&amp;nbsp; Deallocated 1 extent(s) starting at page 0001:00000108&lt;br /&gt;
	000000cd:00000088:01dd LOP_COMMIT_XACT LCX_NULL 0000:00005fac&amp;nbsp; 52&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;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;(I snipped out a few extraneous&amp;nbsp;log records plus the 6 extra &amp;#39;Allocated&amp;#39; and&amp;nbsp;&amp;#39;Deallocated&amp;#39; for each of the&amp;nbsp;PFS row modifications.)&amp;nbsp;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;One of the things I notice is that the sort spill space is allocated in extents, and almost&amp;nbsp;the entire sort - from initialization, through allocating all the extents, to deallocating them - is contained in a few very large transactions. But the transactions aren&amp;#39;t actually that large.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Look at the &lt;font face="courier new,courier"&gt;soAllocExtents&lt;/font&gt; transaction with &lt;font face="courier new,courier"&gt;Transaction ID&lt;/font&gt; 00005e50. It&amp;#39;s allocating 4 extents - i.e. 256KB - in a single system transction (4 x mark an extent as unavailable in the GAM,&amp;nbsp;4 x bulk set the 8 PFS bytes for the 8 pages in the extent, 4 x mark&amp;nbsp;an extent allocated in the IAM). The total size of the log records for this transaction is 1012 bytes. (The first &lt;font face="courier new,courier"&gt;soAllocExtents&lt;/font&gt; system transaction only allocates 3 extents, all the others allocate 4 extents.)&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;When the sort ends, the extents are deallocated one-at-a-time in system transactions called &lt;font face="courier new,courier"&gt;ExtentDeallocForSort&lt;/font&gt;. An example is the transaction with &lt;font face="courier new,courier"&gt;Transaction ID&lt;/font&gt; 000078fd. It generates log records totalling 400 bytes. This means each 256KB takes 4 x 400 = 1600 bytes to deallocate.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Combining the allocation and deallocation operations, each 256KB of the sort that spills into tempdb generates 2612 bytes of log records.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Now let&amp;#39;s consider the original behavior that I explained. If the 90GB was all sort space:&lt;/font&gt; 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;90GB&amp;nbsp;is 90 x 1024 x 1024 = 94371840KB, which is 94371840 / 256 = 368640 x 256KB chunks.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Each 256KB chunk takes 2612 bytes to allocate and deallocate, so our 90GB would take 368640 x 2612 = 962887680 bytes of log, which is 962887680 / 1024 / 1024 = ~918MB of log.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;And this would explain the observed behavior. 90GB of tempdb space can be allocated and used for a sort spill with roughly 918MB of transaction log, give or take a bit from my rough calculations.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Tempdb logs things very efficiently - especially things that spill out of memory. The next stop in debugging such a problem would be regularly capturing the output of &lt;font face="courier new,courier"&gt;sys.dm_db_task_space_usage&lt;/font&gt; to figure out who is using all the space and then digging in from there.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Hope this helps explain things!&lt;/font&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/OoRchAyVBbo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/OoRchAyVBbo/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Understanding-data-vs-log-usage-in-tempdb.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=e2f26219-ead9-405e-9c4e-f11ec21461e6</guid>
      <pubDate>Fri, 11 May 2012 02:08:00 -0700</pubDate>
      <category>Performance Tuning</category>
      <category>tempdb</category>
      <category>Transaction Log</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=e2f26219-ead9-405e-9c4e-f11ec21461e6</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=e2f26219-ead9-405e-9c4e-f11ec21461e6</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Understanding-data-vs-log-usage-in-tempdb.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=e2f26219-ead9-405e-9c4e-f11ec21461e6</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=e2f26219-ead9-405e-9c4e-f11ec21461e6</feedburner:origLink></item>
    <item>
      <title>Survey: most prevalent latch waits (code to run)</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I first started blogging about latches and some of the deeper parts of SQL Server internals last year (see &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Advanced-performance-troubleshooting-waits-latches-spinlocks.aspx" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Advanced performance troubleshooting: waits, latches, spinlocks&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;) and now I&amp;#39;d like to pick up that thread (no scheduling pun intended :-)) and blog some more about some of the common latches that could be a performance bottleneck.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;To that end, I&amp;#39;ve got some code below (plus example output)&amp;nbsp;that will show the most common latch waits that have occurred on your system.&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;WITH Latches AS&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; (SELECT&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; latch_class,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wait_time_ms / 1000.0 AS WaitS,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;waiting_requests_count AS WaitCount,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100.0 * wait_time_ms / SUM (wait_time_ms) OVER() AS Percentage,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS RowNum&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM sys.dm_os_latch_stats&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE latch_class NOT IN (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;BUFFER&amp;#39;)&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; AND wait_time_ms &amp;gt; 0&lt;/font&gt;&lt;font face="courier new,courier" size="2"&gt;&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;
	SELECT&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; W1.latch_class AS LatchClass, &lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; CAST (W1.WaitS AS DECIMAL(14, 2)) AS Wait_S,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; W1.WaitCount AS WaitCount,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; CAST (W1.Percentage AS DECIMAL(14, 2)) AS Percentage,&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; CAST ((W1.WaitS / W1.WaitCount) AS DECIMAL (14, 4)) AS AvgWait_S&lt;br /&gt;
	FROM Latches AS W1&lt;br /&gt;
	INNER JOIN Latches AS W2&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; ON W2.RowNum &amp;lt;= W1.RowNum&lt;br /&gt;
	WHERE W1.WaitCount &amp;gt; 0&lt;br /&gt;
	GROUP BY W1.RowNum, W1.latch_class, W1.WaitS, W1.WaitCount, W1.Percentage&lt;br /&gt;
	HAVING SUM (W2.Percentage) - W1.Percentage &amp;lt; 95; -- percentage threshold&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;LatchClass&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; Wait_S&amp;nbsp; WaitCount&amp;nbsp; Percentage&amp;nbsp; AvgWait_S&lt;br /&gt;
	--------------------------------- ------- ---------- ----------- ----------&lt;br /&gt;
	LOG_MANAGER&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; 221.43&amp;nbsp; 4659&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 45.81&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0475&lt;br /&gt;
	ACCESS_METHODS_HOBT_VIRTUAL_ROOT&amp;nbsp; 199.56&amp;nbsp; 7017&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 41.28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0284&lt;br /&gt;
	FGCB_ADD_REMOVE&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; 35.17&amp;nbsp;&amp;nbsp; 1047&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0336&lt;br /&gt;
	DBCC_OBJECT_METADATA&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; 26.85&amp;nbsp;&amp;nbsp; 256490&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.0001&lt;br /&gt;
	&lt;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I&amp;#39;d like you to run the code and send me the output (either as a comment or in &lt;a href="mailto:paul@sqlskills.com?subject=My latch statistics" target="_blank"&gt;email&lt;/a&gt;). I&amp;#39;ll collate all your output and do some blogging for your enjoyment.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Thanks!&lt;/font&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/QKhxouMV__w" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/QKhxouMV__w/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Survey-most-prevalent-latch-waits.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=2bc5f5a8-c501-48b0-8d43-15505c17ca73</guid>
      <pubDate>Thu, 10 May 2012 02:26:00 -0700</pubDate>
      <category>Latches</category>
      <category>Performance Tuning</category>
      <category>Surveys</category>
      <category>Wait Stats</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=2bc5f5a8-c501-48b0-8d43-15505c17ca73</pingback:target>
      <slash:comments>53</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=2bc5f5a8-c501-48b0-8d43-15505c17ca73</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Survey-most-prevalent-latch-waits.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=2bc5f5a8-c501-48b0-8d43-15505c17ca73</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=2bc5f5a8-c501-48b0-8d43-15505c17ca73</feedburner:origLink></item>
    <item>
      <title>Cool free tool to parse and analyze SQLIO results</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;During every one of our Immersion Events, we designate Thursday evening as &amp;#39;open mic&amp;#39; night where anyone can do a 15-minute presentation on anything they want (to do with SQL Server) to the class. We usually have 4 or 5 people who entertain us with interesting talks, and our recent classes in Chicago were no different. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;One of the talks really impressed me. David Klee (&lt;/font&gt;&lt;a href="http://www.davidklee.net/" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;b&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;|&lt;/font&gt;&lt;a href="http://twitter.com/#!/kleegeek" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;t&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;) demonstrated an automated analysis tool he&amp;#39;s written for SQLIO result file parsing to save him time. He mentioned he was going to put it online and I encouraged him to do so as I could see the benefit to many people out there of not having to write their own analysis tools/spreadsheets. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;You can get to David&amp;#39;s free analysis site at &lt;/font&gt;&lt;a href="http://tools.davidklee.net/sqlio.aspx"&gt;&lt;font face="verdana,geneva" size="2"&gt;http://tools.davidklee.net/sqlio.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;. Clicking on the link at bottom right allows you to upload a SQLIO results text file. Once you&amp;#39;ve clicked ANALYZE, select the option to output the results to a spreadsheet and one will be automatically generated for you. If you look in the Analysis pane of the spreadsheet, you&amp;#39;ll see something like below (using David&amp;#39;s supplied example SQLIO output).&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;Very cool stuff - thanks David!&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f5%2fsqlio1.jpg" alt="" /&gt; &lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f5%2fsqlio2.jpg" alt="" /&gt;&lt;/font&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/ID1tnDETJmQ" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/ID1tnDETJmQ/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Cool-free-tool-to-parse-and-analyze-SQLIO-results.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=9370deb7-c1c0-4150-a50e-2b4adc4f7c86</guid>
      <pubDate>Wed, 02 May 2012 14:23:00 -0700</pubDate>
      <category>IO Subsystems</category>
      <category>Performance Tuning</category>
      <category>Tools</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=9370deb7-c1c0-4150-a50e-2b4adc4f7c86</pingback:target>
      <slash:comments>7</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=9370deb7-c1c0-4150-a50e-2b4adc4f7c86</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Cool-free-tool-to-parse-and-analyze-SQLIO-results.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=9370deb7-c1c0-4150-a50e-2b4adc4f7c86</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=9370deb7-c1c0-4150-a50e-2b4adc4f7c86</feedburner:origLink></item>
    <item>
      <title>SQLskills community mentoring - round 2</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Back in November last year I &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/SQLskills-community-mentoring.aspx" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;blogged about Jonathan&amp;#39;s idea&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; to mentor someone who&amp;#39;s attended one of our classes and how Jonathan, Joe, and I each picked someone to mentor for six months. Our mentees (Steven Ormrod, Luke Jian, and Brad Hoff, respectively) have all said how much they&amp;#39;ve benefited from the arrangement and we&amp;#39;ve really enjoyed helping them out.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Now&amp;nbsp;it&amp;#39;s time to announce the next three people who we&amp;#39;ll be mentoring for the next six months, with brief bios I&amp;#39;ve put together based on their own words.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Joe is going to mentor Dan Taylor, who attended our IE1 and IE3 classes in Tampa earlier this year:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Daniel Taylor started his career over 17 years ago doing QA and mainframe PL-I programming, eventually landing a&amp;nbsp;Junior DBA position at Nielsen Media Research Company working with Sybase ASE 11 thru 12.5 and Sybase IQ, eventually moving to SQL server. He is currently the SQL DBA Team Lead and a Database Staff Specialist at Publix Supermarkets and he&amp;#39;s worked with SQL Server versions from 7.0 to 2008 R2.&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Daniel has B.S. degrees in Psychology and Economics.&amp;nbsp;In a past incarnation, he was even a Flight Attendant for T.W.A. ([Paul] which I heard was to settle a bet...)&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;When not at work Daniel likes to spend time with his friends and family. Daniel, Missy (Daniel&amp;#39;s wife of almost 17 years), and their son Parker (5-1/2 year old) enjoy taking trips to the Smokies of North Carolina where they lose themselves &amp;quot;in the hills.&amp;quot;&amp;nbsp; One of Daniel&amp;#39;s favorite quotes is &amp;quot;The Mountains are Calling and I must go&amp;quot; - John Muir.&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;He&amp;#39;s on Twitter as @DBABullDog.&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Jonathan is going to mentor Kenneth Urena, who attended our IE1, IE2, and IE3 classes in Tampa earlier this year:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Kenneth is from the&amp;nbsp;&amp;quot;Los Santos&amp;quot; (The Saints) area of&amp;nbsp;Costa Rica, where they produce the best coffee in the world ([Paul] It is really, really good...)&amp;nbsp;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Kenneth started out as an &amp;#39;accidental DBA&amp;#39; back in 1999 on SQL Server 7.0. Since then&amp;nbsp;he has grown to become the Database Architect&amp;nbsp;of a multi-national company. He&amp;#39;s&amp;nbsp;responsible&amp;nbsp;for managing&amp;nbsp;a DBA team who is responsible for the entire development cycle from design through production support of multiple applications on around 100 SQL Server instances from SQL Server 2005 through 2008 R2.&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Kenneth holds multiple MCTS and MCITP certifications on SQL Server 2008 and is working towards his MCM certification.&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;He&amp;#39;s on Twitter (very recently) as @sqlcr.&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I&amp;#39;m going to mentor Orson Weston, who we&amp;#39;ve known for years starting at SQL Connections in 2007 and who has attended 3 of our classes, most recently IEBI in Chicago last month:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;Orson was born and raised in southern California and currently works in San Diego for Continental Data Graphics, a Boeing Company, as a Corporate Service DBA. He has a Bachelor&amp;#39;s degree in Computer Information Systems and has been working with SQL Server since 2001.&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;When Orson is not working with SQL Server, he enjoys traveling, sports, and spending time with family and friends, including his brand new addition - an amazing newborn!&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="verdana,geneva" size="2"&gt;He&amp;#39;s on Twitter as @oweston12.&lt;/font&gt; 
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I&amp;#39;d like to congratulate these three guys and look forward to us helping them out over the next six months!&lt;/font&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/FlcWZEzLk8s" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/FlcWZEzLk8s/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/SQLskills-community-mentoring-round-2.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=58ebb5f8-8b97-4ba3-a093-d87da209c501</guid>
      <pubDate>Wed, 02 May 2012 10:15:00 -0700</pubDate>
      <category>General</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=58ebb5f8-8b97-4ba3-a093-d87da209c501</pingback:target>
      <slash:comments>12</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=58ebb5f8-8b97-4ba3-a093-d87da209c501</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/SQLskills-community-mentoring-round-2.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=58ebb5f8-8b97-4ba3-a093-d87da209c501</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=58ebb5f8-8b97-4ba3-a093-d87da209c501</feedburner:origLink></item>
    <item>
      <title>Spring cleaning health check special offer in May</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Spring takes&amp;nbsp;a while to get going in the Pacific Northwest but spring is definitely in the air now that it&amp;#39;s May - and spring means spring cleaning! &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;It&amp;#39;s been about 18 months since we last ran a special pricing offer so I&amp;#39;ve decided to offer one through the month of May for new customers: a 6-hour SQL Server health check for US$1300 (a 1/3 price saving).&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The US$1300 special offer is for a 6-hour health check of a single SQL Server instance (SQL Server 2005 or higher) and you can be anywhere in the world.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;For a typical SQL Server Health Check we ask you to download a customized SQLDiag package to run from an FTP site we provide to you. The scripts gather information on more than 100 areas&amp;nbsp;such as:&lt;/font&gt; 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Wait statistics&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;IO statistics&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Memory configuration&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Buffer pool usage&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Server configuration&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Databases configuration&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Backup information&lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;Information from the query plan cache&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;We also provide you with a questionnaire which asks about your maintenance practices and I/O subsystem configuration.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The collection utility, SQLDiag, ships with SQL Server and is a tool that Microsoft Product Support uses to run data-collecting scripts. Our scripts should take only a few minutes to run and will output several text files to a SQLDiagOutput directory where you unzipped the package to. You can see what data we&amp;#39;re collecting as everything is output as plain text. We then ask you to upload the completed questionnaire and output files to the same FTP site.&amp;nbsp; Once we have the data we will review all of the information and generate the report for your environment.&amp;nbsp; For regular health checks we can also add in data gathering questionnaires/SQLDiag packages&amp;nbsp;regarding virtualization, clustering, your HA/DR strategy, and indexing configuration if desired, but the special offer doesn&amp;#39;t cover time for those.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The majority of clients on our &lt;/font&gt;&lt;a href="http://www.sqlskills.com/PastCustomers.asp" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Past Clients page&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; have gone through this process with one or more servers - so we have plenty of references available, including US government if required.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Typically we like to start out performance tuning engagements with an initial health check of the environment, which provides a comprehensive review of the configuration of the server to isolate any problems that exist in the environment.&amp;nbsp; This has proven to provide most clients with the best return on their investment time-wise since we methodically review over 100 different items that are important for SQL Server performance and availability.&amp;nbsp; Based on the outcome of the health check, we provide you with a detailed report of the problem areas that includes supporting links to blog posts and articles that we and others have&amp;nbsp;written that provide details about how you can fix the problems.&amp;nbsp; Alternatively, we can also assist you with remediation of the identified problems on a WebEx&amp;nbsp;session - most customers do the latter or opt for our &lt;/font&gt;&lt;a href="http://www.sqlskills.com/RemoteDBA.asp" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Remote DBA service&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; to provide ongoing support.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;All you have to do is &lt;/font&gt;&lt;a href="mailto:paul@sqlskills.com?subject=Spring cleaning health check offer" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;send me an email&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; before June to qualify for the special rate and we can get started.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;We look forward to hearing from you, and to helping your SQL Servers get healthy!&lt;/font&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/2hpFPrT-a8w" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/2hpFPrT-a8w/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Spring-cleaning-health-check-special-offer-in-May.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=17454861-f5be-488f-96c6-1655ebf1abac</guid>
      <pubDate>Tue, 01 May 2012 15:26:00 -0700</pubDate>
      <category>Consulting</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=17454861-f5be-488f-96c6-1655ebf1abac</pingback:target>
      <slash:comments>12</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=17454861-f5be-488f-96c6-1655ebf1abac</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Spring-cleaning-health-check-special-offer-in-May.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=17454861-f5be-488f-96c6-1655ebf1abac</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=17454861-f5be-488f-96c6-1655ebf1abac</feedburner:origLink></item>
    <item>
      <title>Visiting Scotland (part 3)</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;This is part three of my three-part series of posts about what I recommend on a visit to Scotland. I&amp;#39;m writing posts because I get asked a lot and this is easier than repeating myself a bunch of times. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;You can get part 1 of the series &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Visiting-Scotland-(part-1).aspx"&gt;&lt;font face="verdana,geneva" size="2"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; - dealing with Glasgow, Edinburgh, and Stirling, and general links to agencies and our past photo posts - and part 2 of the series &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Visiting-Scotland-(part-2).aspx" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; - dealing with the Isle of Skye. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva"&gt;&lt;font size="2"&gt;&lt;strong&gt;Part 3: Road trips&lt;/strong&gt; &lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;There are a lot of cool places to see in Scotland but I don&amp;#39;t have time to write a travel book or extensive posts about all of them&amp;nbsp;(except the two previous ones). In this post I&amp;#39;m going to list some of&amp;nbsp;my favorite driving routes&amp;nbsp;that allow you to see a bunch of cool scenery and/or places along with a few pointers to specific items. I recommend getting the &lt;/font&gt;&lt;a href="http://www.shop.ordnancesurveyleisure.co.uk/products/paper-maps/paper-maps-ordnance-survey-great-britain/paper-maps-ordnance-survey-great-britain-os-landranger-map"&gt;&lt;font face="verdana,geneva" size="2"&gt;Ordinance Survey Landranger&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; series of maps that cover the routes you&amp;#39;re going to drive as they list all kinds of interesting historical things to see. For all of these I also recommend doing more research of the routes and places to stop, depending on what you like to do. Many of the places listed here have whisky distilleries nearby or clan centers. I&amp;#39;ve put in wikipedia links (if existing) the first time a place is mentioned.&lt;/font&gt; 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Glasgow to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Crianlarich" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Crianlarich&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. This goes along the A82 road that skirts the side of &lt;a href="http://en.wikipedia.org/wiki/Loch_lomond" target="_blank"&gt;Loch Lomond&lt;/a&gt;, one of the most picturesque, and the largest,&amp;nbsp;bodies of water in the UK. For the adventurous, take a detour along the other side of the loch to Rowardennan and climb &lt;a href="http://en.wikipedia.org/wiki/Ben_Lomond" target="_blank"&gt;Ben Lomond&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/Luss" target="_blank"&gt;Luss&lt;/a&gt; is a pretty village to stop at - many times I&amp;#39;ve jumped off its pier into the loch. Make sure to stop at the hydro plant alongside the A82 (you can&amp;#39;t miss it - four giant pipes climbing the mountainside to the reservoir at the top). Crianlarich is a railway junction where the Callendar &amp;amp; Oban and West Highland railways converged. The next stop, &lt;a href="http://en.wikipedia.org/wiki/Tyndrum" target="_blank"&gt;Tyndrum&lt;/a&gt;, has two stations - one for the Oban line and one for the Fort William line. &lt;/font&gt;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;a href="http://en.wikipedia.org/wiki/Arrochar,_Argyll_and_Bute" target="_blank"&gt;&lt;em&gt;&lt;strong&gt;Arrochar&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt; to &lt;/strong&gt;&lt;/em&gt;&lt;a href="http://en.wikipedia.org/wiki/Oban" target="_blank"&gt;&lt;em&gt;&lt;strong&gt;Oban&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt; via &lt;/strong&gt;&lt;/em&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverary" target="_blank"&gt;&lt;em&gt;&lt;strong&gt;Inverary&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;. This is one of my most favorite drives in all of Scotland. Get to Arrochar on the A814 - either coming through &lt;a href="http://en.wikipedia.org/wiki/Helensburgh" target="_blank"&gt;Helensburgh&lt;/a&gt; (which is my home town in Scotland) and &lt;a href="http://en.wikipedia.org/wiki/Garelochhead" target="_blank"&gt;Garelochhead&lt;/a&gt; on the A814 past the giant submarine base as &lt;a href="http://en.wikipedia.org/wiki/Faslane" target="_blank"&gt;Faslane&lt;/a&gt; (the reason we moved to Helensburgh in 1977) or crossing over from &lt;a href="http://en.wikipedia.org/wiki/Tarbet,_Argyll_and_Bute" target="_blank"&gt;Tarbet&lt;/a&gt; on the A82 using the A83. If you go through Helensburgh, stop at the &lt;a href="http://en.wikipedia.org/wiki/Hill_House,_Helensburgh" target="_blank"&gt;Hill House&lt;/a&gt;, designed by &lt;a href="http://en.wikipedia.org/wiki/Charles_Rennie_Mackintosh" target="_blank"&gt;Charles Rennie Mackintosh&lt;/a&gt;. The A83 skirts the head of the imaginatively-named &lt;a href="http://en.wikipedia.org/wiki/Loch_Long" target="_blank"&gt;Loch Long&lt;/a&gt; and then heads up the old military road to the pass called the &lt;a href="http://en.wikipedia.org/wiki/Rest_and_be_thankful" target="_blank"&gt;Rest and Be Thankful&lt;/a&gt;. Stop and look down the hill at what you&amp;#39;ve just come up, and marvel at the old road which rises precipitously below you. Continue down to &lt;a href="http://en.wikipedia.org/wiki/Loch_Fyne" target="_blank"&gt;Loch Fyne&lt;/a&gt; and stop in at the &lt;a href="http://en.wikipedia.org/wiki/Loch_Fyne_Oysters" target="_blank"&gt;Loch Fyne Oyster Bar&lt;/a&gt; - a wonderful place to eat seafood. Continue along the road to Inverary. As you go over the bridge at the traffic lights outside the town, look to the right to see the impressive &lt;a href="http://www.inveraray-castle.com/" target="_blank"&gt;Inverary Castle&lt;/a&gt;, seat of the &lt;a href="http://en.wikipedia.org/wiki/Duke_of_Argyll" target="_blank"&gt;Duke of Argyll&lt;/a&gt;. Inverary is good to stop and walk around - lots of things to do. Continue down the A83 through excellent scenery to &lt;a href="http://en.wikipedia.org/wiki/Lochgilphead" target="_blank"&gt;Lochgilphead&lt;/a&gt;. From here you can take a long detour down to &lt;a href="http://en.wikipedia.org/wiki/Campbeltown" target="_blank"&gt;Campbeltown&lt;/a&gt; on the &lt;a href="http://en.wikipedia.org/wiki/Mull_of_Kintyre" target="_blank"&gt;Mull of Kintyre&lt;/a&gt;, from which you&amp;#39;ll be able to see Northern Ireland on a good day. You can also go a little north and go left on the B841 to explore the old churches, 700-year old grave stones and crosses at &lt;a href="http://en.wikipedia.org/wiki/Kilmory_Knap_Chapel" target="_blank"&gt;Kilmory&lt;/a&gt; and Kielmore, with excellent views to the &lt;a href="http://en.wikipedia.org/wiki/Paps_of_Jura" target="_blank"&gt;Paps of Jura&lt;/a&gt;. You can walk down to the cool ruins of &lt;a href="http://en.wikipedia.org/wiki/Castle_Sween" target="_blank"&gt;Castle Sween&lt;/a&gt;. Crinan is also worth stopping at - the start of the &lt;a href="http://en.wikipedia.org/wiki/Crinan_Canal"&gt;Crinan Canal&lt;/a&gt;. Continue up the A816 to one of my top five places in the world, &lt;a href="http://en.wikipedia.org/wiki/Kilmartin" target="_blank"&gt;Kilmartin&lt;/a&gt;. There&amp;#39;s an excellent &lt;a href="http://www.kilmartin.org/" target="_blank"&gt;visitor center&lt;/a&gt; here, along with 5000-year old stone circles, standing stones, and Neolithic burial chambers. Continue north to Oban, stopping every so often to see if you can see any sea eagles, particularly at the large marina, &lt;a href="http://en.wikipedia.org/wiki/Craobh_Haven" target="_blank"&gt;Craobh Haven&lt;/a&gt;. Oban is a cool place with lots to do - I recommend walking down the pier and getting some fresh seafood.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Oban to Crianlarich&lt;/em&gt;&lt;/strong&gt;. The A85 from Oban passes through some cool little villages, with &lt;a href="http://en.wikipedia.org/wiki/Connel" target="_blank"&gt;Connel Ferry&lt;/a&gt; being the first. There&amp;#39;s no ferry any longer since the bridge was built. &lt;a href="http://en.wikipedia.org/wiki/Loch_Etive" target="_blank"&gt;Loch Etive&lt;/a&gt; drains into the sea here and the tidal rush can be extreme, especially when sea kayaking or in a boat. &lt;a href="http://en.wikipedia.org/wiki/Taynuilt" target="_blank"&gt;Taynuilt&lt;/a&gt; is worth stopping at for the old Bonawe Iron Furnace. Stop at the &lt;a href="http://en.wikipedia.org/wiki/Ben_Cruachan" target="_blank"&gt;Cruachan&lt;/a&gt; power station and also take a detour to see&amp;nbsp;a replica&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Crannog" target="_blank"&gt;crannog&lt;/a&gt; in &lt;a href="http://en.wikipedia.org/wiki/Loch_awe" target="_blank"&gt;Loch Awe&lt;/a&gt;. From there it&amp;#39;s downhill to Tyndrum, unless you take a detour along the B8074 through &lt;a href="http://en.wikipedia.org/wiki/Glen_Orchy"&gt;Glen Orchy&lt;/a&gt; up to Bridge of Orchy on the A82. I once saw a pair of huge Golden Eagles in the road there.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Oban to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Fort_William,_Scotland" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Fort William&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt; via &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Ballachulish"&gt;&lt;strong&gt;&lt;em&gt;Ballachulish&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. At Connel Ferry, turn left on the A828 towards Ballachulish. A great little road - make sure to check out &lt;a href="http://www.barcaldinecastle.co.uk/" target="_blank"&gt;Barcaldine Castle&lt;/a&gt; and the &lt;a href="http://www.sealsanctuary.co.uk/oban1.html" target="_blank"&gt;Scottish Sea Life Sanctuary&lt;/a&gt;&amp;nbsp;- I took a school trip there by train from Helensburgh when I was 9. At Portnacroish you&amp;#39;ll see &lt;a href="http://en.wikipedia.org/wiki/Castle_Stalker" target="_blank"&gt;Castle Stalker&lt;/a&gt;, which is the castle at the end of the movie &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Monty_Python_and_the_Holy_Grail" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Monty Python and The Holy Grail&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;. There&amp;#39;s also a great &lt;a href="http://www.airds-hotel.com/" target="_blank"&gt;little luxury&amp;nbsp;hotel&lt;/a&gt; with excellent food at &lt;a href="http://en.wikipedia.org/wiki/Port_Appin" target="_blank"&gt;Port Appin&lt;/a&gt;. From there you&amp;#39;ll drive up the side of &lt;a href="http://en.wikipedia.org/wiki/Loch_Linnhe" target="_blank"&gt;Loch Linnhe&lt;/a&gt;, eventually joining the A82 at Ballachulish and heading up the nondescript road to Fort William. There isn&amp;#39;t a huge amount to do in Fort William - it&amp;#39;s more a place to rest and stay overnight if you&amp;#39;re skiing, climbing, walking or touring.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Crianlarich to Fort William through &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Glen_Coe" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Glen Coe&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. After Tyndrum you&amp;#39;ll climb up into the mountains. When you reach the top of the hill, you&amp;#39;ll see the railway line and a trail on your right, which both go to Fort William. The trail is the famous &lt;a href="http://en.wikipedia.org/wiki/West_Highland_Way" target="_blank"&gt;West Highland Way&lt;/a&gt;, which starts just outside Glasgow - I&amp;#39;ve never done it, but my younger brother did a few years back. Continue to look on your right to see the horseshoe curve the railway line makes as it traverses three mountains. After passing through &lt;a href="http://en.wikipedia.org/wiki/Bridge_of_orchy" target="_blank"&gt;Bridge of Orchy&lt;/a&gt;, the road heads downhill to Loch Tulla. Here you&amp;#39;ll go through a distinctive bridge, which marks the south end of &lt;a href="http://en.wikipedia.org/wiki/Rannoch_Moor" target="_blank"&gt;Rannoch Moor&lt;/a&gt;. The other bridge is at the entrance to Glen Coe. You&amp;#39;ll climb a steep hill and then you&amp;#39;re on Rannoch Moor proper. Make sure to stop along the way and get some reflection photos in one of the little bodies of water by the road. After cross the moor, you&amp;#39;ll see a giant mountain right in front of you - this is &lt;a href="http://en.wikipedia.org/wiki/Buchaille_Etive_Mor" target="_blank"&gt;Buachaille Etive M&amp;ograve;r&lt;/a&gt; (colloquially known simply as The Buachialle pronounced &amp;#39;The Boo-kal&amp;#39;). A cool detour goes down &lt;a href="http://en.wikipedia.org/wiki/Glen_Etive" target="_blank"&gt;Glen Etive&lt;/a&gt;, where I must have spent 20-odd nights over the years camped beside the river while hill walking. Glen Coe is steeped in history, most notably the &lt;a href="http://en.wikipedia.org/wiki/Massacre_of_Glencoe" target="_blank"&gt;Massacre of Glencoe&lt;/a&gt; in 1692. It&amp;#39;s also got some of the most amazing scenery in Scotland - I think it&amp;#39;s best seen in overcast weather, when the mountains look like they&amp;#39;re brooding. There are numerous cool walks to take, from strolls to hard-core roped-up mountaineering - this is one of the most popular walking and climbing destinations in Scotland. Make sure to stop at the visitor center in &lt;a href="http://en.wikipedia.org/wiki/Glencoe,_Highland" target="_blank"&gt;Glencoe Village&lt;/a&gt;. From there you follow the road around to Ballachulish and up to Fort William.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Train to Fort William&lt;/em&gt;&lt;/strong&gt;. Optionally, take the train from Glasgow to Fort William - a stunning ride through desolate countryside. It rides up high along the side of Loch Lomond too and goes through my home town of Helensburgh.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;a href="http://en.wikipedia.org/wiki/Ardnamurchan"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Ardnamurchan Peninsula&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;. This is a great place to go camping, especially by the side of &lt;a href="http://en.wikipedia.org/wiki/Loch_Sunart" target="_blank"&gt;Loch Sunart&lt;/a&gt;. It&amp;#39;s pretty remote but has some wonderful beaches and plenty of camping space. You get there from the A830 almost at &lt;a href="http://en.wikipedia.org/wiki/Mallaig" target="_blank"&gt;Mallaig&lt;/a&gt; or by taking the &lt;a href="http://en.wikipedia.org/wiki/Corran_Ferry" target="_blank"&gt;Corarn Ferry&lt;/a&gt; just south of Fort William (I&amp;#39;ve done both). Drive down to the ferry to the &lt;a href="http://en.wikipedia.org/wiki/Isle_of_Mull" target="_blank"&gt;Isle of Mull&lt;/a&gt;, cross over to &lt;a href="http://en.wikipedia.org/wiki/Tobermory,_Mull" target="_blank"&gt;Tobermory&lt;/a&gt; (a very picturesque little town) and then head down to &lt;a href="http://en.wikipedia.org/wiki/Fionnphort" target="_blank"&gt;Fhionnphort&lt;/a&gt; and take the ferry to the isle of &lt;a href="http://en.wikipedia.org/wiki/Iona" target="_blank"&gt;Iona&lt;/a&gt; to see the ancient &lt;a href="http://en.wikipedia.org/wiki/Iona_Abbey" target="_blank"&gt;Iona Abbey&lt;/a&gt; (which I&amp;#39;ve yet to do). You can also get to Tobermory by ferry from Oban (which is what I&amp;#39;ve done in the past).&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Fort William to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverness" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Inverness&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. This drive takes you along the &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Great_Glen" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Great Glen&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;. Stop at &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Fort_Augustus"&gt;&lt;font face="verdana,geneva" size="2"&gt;Fort Augustus&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; to see all the river locks. You can also rent a barge or boat and motor/sail between the town and the city. Check out the very cool remains of&amp;nbsp;&lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Urquhart_Castle" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Urquhart Castle&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; on the banks of &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Loch_Ness" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Loch Ness&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; and see if you can see the monster :-) There&amp;#39;s a visitor center in nearby &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Drumnadrochit" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Drumnadrochit&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; that has a giant &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Loch_Ness_Monster" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Loch Ness Monster&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; that your kids will like. Inverness has a lot of cool things to see but I&amp;#39;ve never stayed overnight there as I much prefer being out on the West Coast.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;a href="http://en.wikipedia.org/wiki/Perth,_Scotland" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Perth&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt; to Inverness&lt;/em&gt;&lt;/strong&gt;. This follows the A9 road. Be careful when driving it as it&amp;#39;s a notorious accident blackspot. Places to visit include &lt;a href="http://en.wikipedia.org/wiki/Dunkeld" target="_blank"&gt;Dunkeld&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/The_Hermitage_(Scotland)" target="_blank"&gt;The Hermitage&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Pitlochry" target="_blank"&gt;Pitlochry&lt;/a&gt;, &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Blair_Atholl" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Blair Castle in Blair Atholl&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;, &lt;a href="http://en.wikipedia.org/wiki/Aviemore" target="_blank"&gt;Aviemore&lt;/a&gt;, the &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Cairngorms_National_Park"&gt;&lt;font face="verdana,geneva" size="2"&gt;Cairngorms&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;, and all the whisky distilleries around the River Spey (collectively known as the &lt;a href="http://en.wikipedia.org/wiki/Speyside_single_malts" target="_blank"&gt;Speyside Malts&lt;/a&gt;). I can recommend the &lt;a href="http://www1.hilton.com/en_US/hi/hotel/INVCOHN-Hilton-Coylumbridge-hotel-/index.do" target="_blank"&gt;Hilton Coylumbridge&lt;/a&gt; where they also have lodges for rent. Also checkout the &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Battle_of_Culloden" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Culloden Battefield&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; and visitor center - the site of the decisive battle that ended the 1745 &lt;a href="http://en.wikipedia.org/wiki/Jacobite_rebellion" target="_blank"&gt;Jacobite Rebellion&lt;/a&gt;. &lt;/font&gt;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Fort William to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Kyle_of_Lochalsh" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Kyle of Lochalsh&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. Follow the A82 to the junction with the A87, maybe driving up to the Aonach M&amp;ograve;r ski center just north of Fort William. On the A87, make sure to stop at the viewpoint overlooking &lt;a href="http://en.wikipedia.org/wiki/Loch_garry" target="_blank"&gt;Loch Garry&lt;/a&gt;, which from there looks like a map of Scotland. &lt;a href="http://en.wikipedia.org/wiki/Loch_cluanie" target="_blank"&gt;Loch Cluanie&lt;/a&gt; is very interesting depending on the height of the water. You can get down to the foot of the Cluanie dam and there&amp;#39;s an overlook too. At the far end of the loch, stop at the Cluanie Inn for some soup and a beer. You then drive down through picturesque &lt;a href="http://en.wikipedia.org/wiki/Glen_Shiel" target="_blank"&gt;Glen Shiel&lt;/a&gt; to Shiel Bridge. Here you can take a detour over the Man Ratagan to &lt;a href="http://en.wikipedia.org/wiki/Glenelg,_Highland" target="_blank"&gt;Glenelg&lt;/a&gt; (where there&amp;#39;s an excellent broch to see) and get on to Skye through the ferry there. Continuing along the A87 you&amp;#39;ll pass the world famous (from the movie Highlander) &lt;a href="http://en.wikipedia.org/wiki/Eilean_Donan" target="_blank"&gt;Eilean Donan castle&lt;/a&gt; - well worth a visit - before arriving in Kyle of Lochalsh.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Skye&lt;/em&gt;&lt;/strong&gt;. See my &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Visiting-Scotland-(part-2).aspx" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;second post&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; in the series.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Kyle of Lochalsh to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Torridon" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Torridon&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. This is another of my favorite drives in all of Scotland. It takes you through &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Lochcarron" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Lochcarron&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; (maybe take a detour to &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Plockton"&gt;&lt;font face="verdana,geneva" size="2"&gt;Plockton&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; on the way) and over the (in)famous &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Bealach_na_Ba" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Bealach-na-Ba&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; road to &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Applecross" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Applecross&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;, one of my top five favorite places on the planet. You can read all about that trip in my &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Photos-and-stories-from-our-Scotland-trip.aspx" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;photo post from 2009&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;. After driving north, with stunning views across to Skye and &lt;a href="http://en.wikipedia.org/wiki/Raasay" target="_blank"&gt;Raasay&lt;/a&gt;, you&amp;#39;ll come to &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Loch_Torridon" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Loch Torridon&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; with stunning views of the &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Torridon" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Torridon&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; mountains, eventually joining the A832. For a short trip, turn right towards the A890 and then right again towards Kyle of Lochalsh. For the more adventurous, turn left and head around the &lt;a href="http://en.wikipedia.org/wiki/Gairloch" target="_blank"&gt;Gairloch&lt;/a&gt; pensinsula. Lots of excellent views and deserted beaches. When you get to &lt;a href="http://en.wikipedia.org/wiki/Gruinard" target="_blank"&gt;Gruinard&lt;/a&gt;, look out at the island. It&amp;#39;s where the British government tested anthrax during WWII. It&amp;#39;s safe now, apparently... Also check out the excellent &lt;a href="http://en.wikipedia.org/wiki/Inverewe_Garden" target="_blank"&gt;Inverewe Garden&lt;/a&gt;. When you reach the A835, turn right to head south towards the A832 junction to make a loop back to Kyle of Lochalsh.&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;a href="http://en.wikipedia.org/wiki/Ullapool" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Ullapool&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;em&gt; to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Durness" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;Durness&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. From Inverness or Kyle of Lochalsh, you&amp;#39;ll eventually end up on the A835 if you want to go north west of Ullapool. Make sure to stop at &lt;a href="http://en.wikipedia.org/wiki/Corrieshalloch_Gorge" target="_blank"&gt;Corrieshalloch Gorge&lt;/a&gt;. Ullapool is also the main ferry port for the &lt;a href="http://en.wikipedia.org/wiki/Outer_Hebrides" target="_blank"&gt;Outer Hebrides&lt;/a&gt; islands. From Ullapool, drive north on the A835 and turn left when you hit the A837. Follow this north and then west to &lt;a href="http://en.wikipedia.org/wiki/Lochinver" target="_blank"&gt;Lochinver&lt;/a&gt;. From Lochinver, take the B869 road around the peninsula and make sure to stop at &lt;a href="http://en.wikipedia.org/wiki/Achmelvich" target="_blank"&gt;Achmelvich&lt;/a&gt;. It&amp;#39;s a great place to camp and has a stunning beach - check out the little ranger hut too. The road is single-track, very twisty, and very steep in places - definitely for the adventurous. Whichever way you go, you&amp;#39;ll end up on the A894. At &lt;a href="http://en.wikipedia.org/wiki/Kylesku" target="_blank"&gt;Kylesku&lt;/a&gt; you&amp;#39;ll go over the only bridge over the Atlantic and here was the one time I had to stop driving in the middle of the road because the rain was coming down so hard I literally couldn&amp;#39;t see, even with the wipers on full. Make sure you have a hat :-) Continue north through stunning scenery until you get to Durness. There&amp;#39;s nothing much at &lt;a href="http://en.wikipedia.org/wiki/Kinlochbervie" target="_blank"&gt;Kinlochbervie&lt;/a&gt; so I don&amp;#39;t recommend taking that side trip. &lt;/font&gt;&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;strong&gt;&lt;em&gt;Durness to &lt;/em&gt;&lt;/strong&gt;&lt;a href="http://en.wikipedia.org/wiki/John_O_Groats" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;John o&amp;#39; Groats&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;. If&amp;nbsp;you can, spend the day at &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Durness" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Durness&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;- the most sparsely populated area in Western Europe. There are utterly stunning beaches just a little east of the village and also just to the west of where the road enters the village. You absolutely must see the fabulous &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Smoo_Cave" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Smoo Cave&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; just to the west of the village, where a 60 foot waterfall goes under the road and into a chamber you can access. If you can, go visit the lighthouse at &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Cape_Wrath" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Cape Wrath&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;. This is driving along the &lt;a href="http://en.wikipedia.org/wiki/Pentland_Firth" target="_blank"&gt;Pentland Firth&lt;/a&gt; - one of the roughest bodies of water around the UK and partially what persuaded me not to follow my Father&amp;#39;s footsteps in the Royal Navy. You&amp;#39;ll go past &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Loch_Eriboll" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Loch Eriboll&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; where the German U-boats surrendered in WWII after the Battle of the Atlantic, &lt;a href="http://en.wikipedia.org/wiki/Tongue,_Highland" target="_blank"&gt;Tongue&lt;/a&gt;&amp;nbsp;(where you can cut south to Inverness), and &lt;a href="http://en.wikipedia.org/wiki/Thurso" target="_blank"&gt;Thurso&lt;/a&gt; - the main ferry port for &lt;a href="http://en.wikipedia.org/wiki/Orkney" target="_blank"&gt;Orkney&lt;/a&gt; and the nearest town to the &lt;a href="http://en.wikipedia.org/wiki/Dounreay" target="_blank"&gt;Dounreay&lt;/a&gt; nuclear reactor where my Father was stationed for a small time. Take a detour to &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/Dunnet_Head" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Dunnet Head&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; (the most northerly point of the British mainland - check out the lighthouse and sea stacks) before heading to &lt;/font&gt;&lt;a href="http://en.wikipedia.org/wiki/John_O_Groats" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;John o&amp;#39; Groats&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;(often mistakenly referred to as the most northerly point).&lt;/font&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;There&amp;#39;s easily several week&amp;#39;s worth of things to do here and the driving can be done in small chunks as the country isn&amp;#39;t really big. You can get from Glasgow or Edinburgh to Kyle of Lochalsh in about 6 hours on a good day.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;There are many, many more places to see - I didn&amp;#39;t even touch on areas south of Glasgow and Edinburgh, The Trossachs, or in eastern Scotland - but I ran out of time - the series took me about 6 hours altogether.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I hope you&amp;#39;ve enjoyed my series of blog posts and they prove useful to some of you!&lt;/font&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/xvm78P0HugY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/xvm78P0HugY/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Visiting-Scotland-(part-3).aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=e949fdc7-ef7e-40ac-a1c0-7dec11fc433e</guid>
      <pubDate>Tue, 01 May 2012 12:19:00 -0700</pubDate>
      <category>Scotland</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=e949fdc7-ef7e-40ac-a1c0-7dec11fc433e</pingback:target>
      <slash:comments>19</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=e949fdc7-ef7e-40ac-a1c0-7dec11fc433e</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Visiting-Scotland-(part-3).aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=e949fdc7-ef7e-40ac-a1c0-7dec11fc433e</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=e949fdc7-ef7e-40ac-a1c0-7dec11fc433e</feedburner:origLink></item>
    <item>
      <title>New script: When were the sp_configure options last changed?</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;In my &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Where-are-sp_configure-settings-stored-Another-reason-to-backup-master.aspx" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;previous post&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; I explained how the &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; settings are stored in a special page in the &lt;font face="courier new,courier"&gt;master&lt;/font&gt; database called the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block. Sometimes you might want to know when these were last changed if error logs are not available for some reason (as &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; changes are noted in the error log) or someone tried to cover his/her tracks by editing them. You can figure this out by dumping the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block directly using &lt;font face="courier new,courier"&gt;DBCC PAGE&lt;/font&gt; or &lt;font face="courier new,courier"&gt;DBCC CONFIG&lt;/font&gt;. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Here&amp;#39;s the&amp;nbsp;&lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block for one of the instances on my laptop: &lt;/font&gt;
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DBCC TRACEON (3604);&lt;br /&gt;
	DBCC CONFIG;&lt;br /&gt;
	GO &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;CONFIG: &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DS_CONFIG @0x00000000043A3060 &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;cconfsz = 8&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; cmajor = 9&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;&amp;nbsp; cminor = 0&lt;br /&gt;
	crevision = 76&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; cbootsource = 2&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; crecinterval = 0&lt;br /&gt;
	ccatalogupdates = 0&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; cmbSrvMemMin = 16&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; cmbSrvMemMax = 2147483647&lt;br /&gt;
	cusrconnections = 0&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; cnetworkpcksize = 4096&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; ckbIndexMem = 0&lt;br /&gt;
	cfillfactor = 0&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; ctapreten = 0&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; cwritestatus = 0&lt;br /&gt;
	cfgpriorityboost = 0x0&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; cfgexposeadvparm = 0x1&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; cfglogintime = 20&lt;br /&gt;
	cfgpss = 0&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;&amp;nbsp; cfgpad = 4096&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; cfgxdes = 16&lt;br /&gt;
	cfgaffinitymask = 0&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; cfgaffinitymask64 = 0&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; cfgIOAffinityMask = 0&lt;br /&gt;
	cfgIOAffinity64Mask = 0&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; cfgbuf = 4362&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; cfgdes = 0&lt;br /&gt;
	cfglocks = 0&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; cfgquerytime = 600&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; cfgcursorthrsh = -1&lt;br /&gt;
	cfgrmttimeout = 10&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; cfg_dtc_rpcs = 0&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; cclkrate = 31250&lt;br /&gt;
	cfg_max_text_repl_size = 65536&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="verdana,geneva"&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;&lt;strong&gt;cfgupddate = 41023&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; cfgupdtime = 14252889&lt;br /&gt;
	&lt;/strong&gt;fRemoteAccess = 1&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; cfgbufminfree = 331&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; cnestedtriggers = 0x1&lt;br /&gt;
	cdeflang = 0&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; cfgTransformNoiseWords = 0x0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cfgPrecomputeRank = 0x0&lt;br /&gt;
	crossdbownchain = 0&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; cidCfg = 0x3400d008&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; cidCfgOld = 0x3400d008&lt;br /&gt;
	cfgCutoffYear = 2049&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; cfgLangNeutralFT = 1033&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; maxworkthreads = 0&lt;br /&gt;
	minworkthreads = 32&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; minnetworkthreads = 32&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; threadtimeout = 15&lt;br /&gt;
	connectsperthread = 0&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; cusroptions = 0&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; exchcostthreshold = 5&lt;br /&gt;
	maxdop = 1&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;&amp;nbsp; cpwdpolicyupgrade = 0x1&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; cfServerTriggerRecursion = 1&lt;br /&gt;
	cfDisableResultsetsFromTriggers = 0&amp;nbsp; cfgPHConnectTimeout = 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLREnabled = 0&lt;br /&gt;
	cfgmaxcrawlrange = 4&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; ftSmallBufMin = 0&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; ftSmallBufMax = 100&lt;br /&gt;
	ftLargeBufMin = 0&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; ftLargeBufMax = 100&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; RemoteDacEnabled = 0&lt;br /&gt;
	CommCritComplianceEnabled = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EkmEnabled = 0&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; cUserInstanceTimeout = 0x3c&lt;br /&gt;
	cfgEnableUserInstances = 0x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_BackupCompressionDefault = 0x0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilestreamAccessLevel = 2&lt;br /&gt;
	OptimizeForAdhocWorkloads = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cchecksum = 1191&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;br /&gt;
	DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;br /&gt;
	&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The two highlighted fields are the time the &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; options were last updated. The &lt;font face="courier new,courier"&gt;cfgupddate&lt;/font&gt; is the day that &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; was last updated and the &lt;font face="courier new,courier"&gt;cfgupdtime&lt;/font&gt; is the time on that day is was last updated. Here&amp;#39;s how to interpret them: &lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;font face="courier new,courier"&gt;cfgupdtime&lt;/font&gt; is the number of 3.3ms intervals since midnight. 14252889 x 3.3ms = 47034533.7ms = 47034s. 47036 div 3600 (secs/hour) = 13 hours. And (47036 mod 3600) div 60 (mins/hour) = 3 mins. And (47036 mod 3600) - (3 x 60) = 56 secs. I last updated my sp_configure settings at 13:03:56 when I tested it by setting MAXDOP to 1. &lt;/font&gt;
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div&gt;
	&lt;font face="verdana,geneva" size="2"&gt;&lt;font face="courier new,courier"&gt;cfgupddate&lt;/font&gt; is more complex. It&amp;#39;s the number of days since January 1st, 1900. Doing a raw 41023 / 365 = 112.391blah. So 112 years, leaving 41023 - (112 * 365)&amp;nbsp;= 143 days over. but we also have to account for the extra day in all the leap years since 1900. 1900 itself isn&amp;#39;t a leap year, but 2000 is, plus 24 between 1900 and 2000, and&amp;nbsp;2 since 2000, not including this year. So we have 143 - 1 - 24 -&amp;nbsp;2 = 116 days. 116 - 31 (Jan) - 29 (Feb) - 31 (Mar) = 25. But it&amp;#39;s the number of days *since* January 1st, 1900 so we add 1 and we get 26 - and today&amp;#39;s the 26th of April. &lt;/font&gt;
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;I last changed the &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; options at 13:03:56 on April 26, 2012. Its trivial to come up with T-SQL code to do all of this, using the &lt;font face="courier new,courier"&gt;WITH TABLERESULTS&lt;/font&gt; option of &lt;font face="courier new,courier"&gt;DBCC PAGE&lt;/font&gt;.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Note&amp;nbsp;the time of the last &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; change is only flushed to the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; blocck on disk when the server restarts, is recollated, or some other major change occurs. This means that if you make a change, the time returned by the code will not change. You can prove this to your self by making a change, waiting an hour, rebooting, and running the script. The time returned will be the change time, not the reboot time.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font size="2"&gt;[Edit 4/30/12: I fixed a small arithmetic bug in my milliseconds calculation thanks to Nils Gustav Str&amp;aring;b&amp;oslash;.]&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;You can download the code from &lt;/font&gt;&lt;a href="http://www.sqlskills.com/BLOGS/PAUL/file.axd?file=2012%2f4%2fSQLskillsSPConfigureChanged.zip"&gt;&lt;font face="verdana,geneva" size="2"&gt;SQLskillsSPConfigureChanged.zip (1.50 kb)&lt;/font&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;If you want to figue out *what* changed and you don&amp;#39;t have error logs available, you&amp;#39;ll have to restore previous backups of master (you&amp;#39;re backing it up every night, right?) and compare the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; blocks. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Hope this is useful (or at least interesting!) to some of you. Better go set &lt;font face="courier new,courier"&gt;MAXDOP&lt;/font&gt; back to zero before I forget...&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;The code to do this is below (I&amp;#39;m sure someone will comment on a cleverer way to do some of this):&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;/*============================================================================&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; File: SQLskillsSPConfigureChanged.sql&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;&amp;nbsp;&amp;nbsp; Summary: This script reports the time that sp_configure options were&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;last changed&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;&amp;nbsp;&amp;nbsp; SQL Server Versions:&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2005 RTM onwards&lt;br /&gt;
	------------------------------------------------------------------------------&lt;br /&gt;
	&amp;nbsp; Written by Paul S. Randal, SQLskills.com&lt;br /&gt;
	&amp;nbsp;&lt;br /&gt;
	&amp;nbsp; (c) 2011, SQLskills.com. All rights reserved.&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;&amp;nbsp; For more scripts and sample code, check out &lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;a href="http://www.sqlskills.com/"&gt;&lt;font face="courier new,courier" size="2"&gt;http://www.SQLskills.com&lt;/font&gt;&lt;/a&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;&amp;nbsp; You may alter this code for your own *non-commercial* purposes. You may&lt;br /&gt;
	&amp;nbsp; republish altered code as long as you include this copyright and give due&lt;br /&gt;
	&amp;nbsp; credit, but you must obtain prior permission before blogging this code.&lt;br /&gt;
	&amp;nbsp; &lt;br /&gt;
	&amp;nbsp; THIS CODE AND INFORMATION ARE PROVIDED &amp;quot;AS IS&amp;quot; WITHOUT WARRANTY OF &lt;br /&gt;
	&amp;nbsp; ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED &lt;br /&gt;
	&amp;nbsp; TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A&lt;br /&gt;
	&amp;nbsp; PARTICULAR PURPOSE.&lt;br /&gt;
	============================================================================*/&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;br /&gt;
	&lt;font face="courier new,courier" size="2"&gt;SET NOCOUNT ON;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Create the temp table&lt;br /&gt;
	--&lt;br /&gt;
	IF EXISTS (SELECT * FROM msdb.sys.objects WHERE NAME = &amp;#39;SQLskillsDBCCPage&amp;#39;)&lt;br /&gt;
	DROP TABLE msdb.dbo.SQLskillsDBCCPage;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;CREATE TABLE msdb.dbo.SQLskillsDBCCPage (&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [ParentObject] VARCHAR (100),&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [Object]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR (100),&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [Field]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR (100),&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; [VALUE]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VARCHAR (100)); &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DECLARE @hours&amp;nbsp;&amp;nbsp;&amp;nbsp;INT;&lt;br /&gt;
	DECLARE @minutes&amp;nbsp;&amp;nbsp;INT;&lt;br /&gt;
	DECLARE @seconds&amp;nbsp;&amp;nbsp;INT;&lt;br /&gt;
	DECLARE @milliseconds&amp;nbsp;BIGINT;&lt;br /&gt;
	DECLARE @LastUpdateTime&amp;nbsp;DATETIME;&lt;br /&gt;
	DECLARE @upddate&amp;nbsp;&amp;nbsp;INT;&lt;br /&gt;
	DECLARE @updtime&amp;nbsp;&amp;nbsp;BIGINT;&lt;br /&gt;
	DECLARE @dbccPageString VARCHAR (200);&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Build the dynamic SQL&lt;br /&gt;
	--&lt;br /&gt;
	SELECT @dbccPageString = &amp;#39;DBCC PAGE (master, 1, 10, 3) WITH TABLERESULTS, NO_INFOMSGS&amp;#39;;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Empty out the temp table and insert into it again&lt;br /&gt;
	--&lt;br /&gt;
	INSERT INTO msdb.dbo.SQLskillsDBCCPage EXEC (@dbccPageString);&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT @updtime = [VALUE] FROM msdb.dbo.SQLskillsDBCCPage&lt;br /&gt;
	WHERE [Field] = &amp;#39;cfgupdtime&amp;#39;;&lt;br /&gt;
	SELECT @upddate = [VALUE] FROM msdb.dbo.SQLskillsDBCCPage&lt;br /&gt;
	WHERE [Field] = &amp;#39;cfgupddate&amp;#39;;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Convert updtime to seconds&lt;br /&gt;
	SELECT @milliseconds = CONVERT (INT, CONVERT (FLOAT, @updtime) * (3 + 1.0/3))&lt;br /&gt;
	SELECT @updtime = @milliseconds / 1000;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Pull out hours, minutes, seconds, milliseconds&lt;br /&gt;
	SELECT @hours = @updtime / 3600;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT @minutes = (@updtime % 3600) / 60;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT @seconds = @updtime - (@hours * 3600) - (@minutes * 60);&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Calculate number of milliseconds&lt;br /&gt;
	SELECT @milliseconds = @milliseconds -&lt;br /&gt;
	&amp;nbsp;@seconds * 1000 -&lt;br /&gt;
	&amp;nbsp;@minutes * 60 * 1000 -&lt;br /&gt;
	&amp;nbsp;@hours * 3600 * 1000;&lt;br /&gt;
	&amp;nbsp;&lt;br /&gt;
	-- No messy conversion code required for the date as SQL Server can do it for us&lt;br /&gt;
	SELECT @LastUpdateTime = DATEADD (DAY, @upddate, &amp;#39;1900-01-01&amp;#39;);&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- And add in the hours, minutes, seconds, and milliseconds&lt;br /&gt;
	-- There are nicer functions to do this but they don&amp;#39;t work in 2005/2008&lt;br /&gt;
	SELECT @LastUpdateTime = DATEADD (HOUR, @hours, @LastUpdateTime);&lt;br /&gt;
	SELECT @LastUpdateTime = DATEADD (MINUTE, @minutes, @LastUpdateTime);&lt;br /&gt;
	SELECT @LastUpdateTime = DATEADD (SECOND, @seconds, @LastUpdateTime);&lt;br /&gt;
	SELECT @LastUpdateTime = DATEADD (MILLISECOND, @milliseconds, @LastUpdateTime);&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;SELECT @LastUpdateTime AS &amp;#39;sp_configure options last updated&amp;#39;;&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;-- Clean up&lt;br /&gt;
	--&lt;br /&gt;
	DROP TABLE msdb.dbo.SQLskillsDBCCPage;&lt;br /&gt;
	GO&lt;br /&gt;
	&lt;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/4Up-RA4XpT0" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/4Up-RA4XpT0/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/When-were-the-sp_configure-options-last-changed.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=c9f09e7b-7c18-44df-81fc-64aa1ffb8a68</guid>
      <pubDate>Thu, 26 Apr 2012 11:30:00 -0700</pubDate>
      <category>Database Maintenance</category>
      <category>Example Scripts</category>
      <category>Inside the Storage Engine</category>
      <category>On-Disk Structures</category>
      <category>Undocumented commands</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=c9f09e7b-7c18-44df-81fc-64aa1ffb8a68</pingback:target>
      <slash:comments>15</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=c9f09e7b-7c18-44df-81fc-64aa1ffb8a68</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/When-were-the-sp_configure-options-last-changed.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=c9f09e7b-7c18-44df-81fc-64aa1ffb8a68</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=c9f09e7b-7c18-44df-81fc-64aa1ffb8a68</feedburner:origLink></item>
    <item>
      <title>Where are sp_configure settings stored? Another reason to backup master...</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Earlier today I &lt;a href="http://www.sqlmag.com/blog/sql-server-questions-answered-28/database-administration/master-database-corrupt-142934" target="_blank"&gt;blogged on our SQL Server Pro magazine blog&lt;/a&gt; about false-alarm corruptions you will *definitely* see if you restore a backup of the &lt;font face="courier new,courier"&gt;master&lt;/font&gt; database as a user database and run &lt;font face="courier new,courier"&gt;DBCC CHECKDB&lt;/font&gt; on the restored copy. You might be doing this as part of offloading consistency checks to another server or validating your backups restore correctly and contain an undamaged database. You&amp;#39;ll definitely get a shock the first time you see these false-alarms and think your real &lt;font face="courier new,courier"&gt;master&lt;/font&gt; is corrupt!&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;One of the &amp;#39;corruptions&amp;#39; is because of a special page that only exists in the &lt;font face="courier new,courier"&gt;master&lt;/font&gt; database - the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block of the SQL Server instance. It&amp;#39;s page number 10 in data file ID 1 of master. &lt;font face="courier new,courier"&gt;DBCC CHECKDB&lt;/font&gt; flags this as a corruption if it&amp;#39;s present in any other database apart from &lt;font face="courier new,courier"&gt;master&lt;/font&gt;, as the page in &lt;font face="courier new,courier"&gt;master&lt;/font&gt; is marked as allocated, but no object owns it. This is only allowed in &lt;font face="courier new,courier"&gt;master&lt;/font&gt;. Similar allowances are made by &lt;font face="courier new,courier"&gt;DBCC CHECKDB&lt;/font&gt; in every database for the boot page (page 9 in file 1) and for each data and log file&amp;#39;s file header page (page 0 in each file). See &lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-20-Boot-pages-and-boot-page-corruption.aspx" target="_blank"&gt;here for a blog post about the boot page&lt;/a&gt; and &lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-21-File-header-pages-and-file-header-corruption.aspx" target="_blank"&gt;here for a blog post about file header pages&lt;/a&gt;.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;What does this special page store? It stores all the &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; options for the SQL Server instance. This is yet one more reason to make sure you regularly back up the &lt;font face="courier new,courier"&gt;master&lt;/font&gt; database&amp;nbsp;because if you lose &lt;font face="courier new,courier"&gt;master&lt;/font&gt; then you lose all your configuration settings for that SQL Server instance.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;You can examine this page using &lt;font face="courier new,courier"&gt;DBCC PAGE&lt;/font&gt; or the equally undocumented, but nowhere nearly as well known, &lt;font face="courier new,courier"&gt;DBCC CONFIG&lt;/font&gt; command (they use the same code under the covers and both require trace flag 3604).&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Here&amp;#39;s an example from one of my laptop instances:&lt;/font&gt; 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DBCC TRACEON (3604);&lt;br /&gt;
	DBCC PAGE (&amp;#39;master&amp;#39;, 1, 10, 3);&lt;br /&gt;
	GO&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;PAGE: (1:10)&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;BUFFER:&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;BUF @0x0000000080FC0AC0&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;bpage = 0x0000000080572000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bhash = 0x0000000000000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bpageno = (1:10)&lt;br /&gt;
	bdbid = 1&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;&amp;nbsp;&amp;nbsp; breferences = 0&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; bcputicks = 264&lt;br /&gt;
	bsampleCount = 1&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; bUse1 = 23062&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; bstat = 0xc00009&lt;br /&gt;
	blog = 0x32159&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; bnext = 0x0000000000000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;PAGE HEADER:&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Page @0x0000000080572000&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;m_pageId = (1:10)&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; m_headerVersion = 1&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; m_type = 14&lt;br /&gt;
	m_typeFlagBits = 0x0&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; m_level = 0&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; m_flagBits = 0x200&lt;br /&gt;
	m_objId (AllocUnitId.idObj) = 99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_indexId (AllocUnitId.idInd) = 0&amp;nbsp;&amp;nbsp;&amp;nbsp; Metadata: AllocUnitId = 6488064&lt;br /&gt;
	Metadata: PartitionId = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Metadata: IndexId = 0&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; Metadata: ObjectId = 99&lt;br /&gt;
	m_prevPage = (0:0)&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; m_nextPage = (0:0)&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; pminlen = 0&lt;br /&gt;
	m_slotCnt = 1&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; m_freeCnt = 0&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; m_freeData = 8190&lt;br /&gt;
	m_reservedCnt = 0&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; m_lsn = (0:0:1)&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; m_xactReserved = 0&lt;br /&gt;
	m_xdesId = (0:0)&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; m_ghostRecCnt = 0&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; m_tornBits = -1051583237&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Allocation Status&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;GAM (1:2) = ALLOCATED&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; SGAM (1:3) = NOT ALLOCATED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
	PFS (1:1) = 0x64 MIXED_EXT ALLOCATED 100_PCT_FULL&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; DIFF (1:6) = CHANGED&lt;br /&gt;
	ML (1:7) = NOT MIN_LOGGED&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Slot 0, Offset 0x60, Length 9, DumpStyle BYTE&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Record Type = PRIMARY_RECORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Record Attributes =&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; Record Size = 9&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;Memory Dump @0x000000001580C060&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;0000000000000000:&amp;nbsp;&amp;nbsp; 00000800 e2040000 09&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;&amp;dagger;....&amp;acirc;...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DS_CONFIG @0x000000001580C060&lt;/font&gt; 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;cconfsz = 8&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; cmajor = 9&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;&amp;nbsp; cminor = 0&lt;br /&gt;
	crevision = 75&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; cbootsource = 2&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; crecinterval = 0&lt;br /&gt;
	ccatalogupdates = 0&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; cmbSrvMemMin = 0&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; cmbSrvMemMax = 2147483647&lt;br /&gt;
	cusrconnections = 0&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; cnetworkpcksize = 4096&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; ckbIndexMem = 0&lt;br /&gt;
	cfillfactor = 0&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; ctapreten = 0&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; cwritestatus = 0&lt;br /&gt;
	cfgpriorityboost = 0x0&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; cfgexposeadvparm = 0x0&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; cfglogintime = 20&lt;br /&gt;
	cfgpss = 0&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;&amp;nbsp; cfgpad = 4096&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; cfgxdes = 16&lt;br /&gt;
	cfgaffinitymask = 0&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; cfgaffinitymask64 = 0&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; cfgIOAffinityMask = 0&lt;br /&gt;
	cfgIOAffinity64Mask = 0&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; cfgbuf = 4362&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; cfgdes = 0&lt;br /&gt;
	cfglocks = 0&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; cfgquerytime = 600&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; cfgcursorthrsh = -1&lt;br /&gt;
	cfgrmttimeout = 10&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; cfg_dtc_rpcs = 0&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; cclkrate = 31250&lt;br /&gt;
	cfg_max_text_repl_size = 65536&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cfgupddate = 41023&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; cfgupdtime = 14252889&lt;br /&gt;
	fRemoteAccess = 1&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; cfgbufminfree = 331&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; cnestedtriggers = 0x1&lt;br /&gt;
	cdeflang = 0&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; cfgTransformNoiseWords = 0x0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cfgPrecomputeRank = 0x0&lt;br /&gt;
	crossdbownchain = 0&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; cidCfg = 0x3400d008&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; cidCfgOld = 0x3400d008&lt;br /&gt;
	cfgCutoffYear = 2049&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; cfgLangNeutralFT = 1033&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; maxworkthreads = 0&lt;br /&gt;
	minworkthreads = 32&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; minnetworkthreads = 32&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; threadtimeout = 15&lt;br /&gt;
	connectsperthread = 0&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; cusroptions = 0&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; exchcostthreshold = 5&lt;br /&gt;
	maxdop = 0&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;&amp;nbsp; cpwdpolicyupgrade = 0x1&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; cfServerTriggerRecursion = 1&lt;br /&gt;
	cfDisableResultsetsFromTriggers = 0&amp;nbsp; cfgPHConnectTimeout = 60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLREnabled = 0&lt;br /&gt;
	cfgmaxcrawlrange = 4&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; ftSmallBufMin = 0&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; ftSmallBufMax = 100&lt;br /&gt;
	ftLargeBufMin = 0&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; ftLargeBufMax = 100&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; RemoteDacEnabled = 0&lt;br /&gt;
	CommCritComplianceEnabled = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EkmEnabled = 0&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; cUserInstanceTimeout = 0x3c&lt;br /&gt;
	cfgEnableUserInstances = 0x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_BackupCompressionDefault = 0x0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilestreamAccessLevel = 2&lt;br /&gt;
	OptimizeForAdhocWorkloads = 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cchecksum = 1250&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;/font&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;font face="courier new,courier" size="2"&gt;DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;br /&gt;
	&lt;/font&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;You can see that the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block is stored in a special way as the record length &lt;font face="courier new,courier"&gt;DBCC PAGE&lt;/font&gt; reports is only 9 bytes, whereas the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block is several hundred bytes. When SQL Server starts, it opens a channel directly to master&amp;#39;s MDF and reads the entire 8Kb of page 10 into memory and typecasts it into the in-memory &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; data structure. If the &lt;font face="courier new,courier"&gt;CONFIG block&lt;/font&gt; is damaged, the server won&amp;#39;t start.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;As you can see from the output, not everything in the &lt;font face="courier new,courier"&gt;CONFIG&lt;/font&gt; block is exposed or settable via &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt;.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;In the &lt;a href="http://www.sqlskills.com/BLOGS/PAUL/post/When-were-the-sp_configure-options-last-changed.aspx" target="_blank"&gt;next post&lt;/a&gt;, I&amp;#39;ll explain how to tell when &lt;font face="courier new,courier"&gt;sp_configure&lt;/font&gt; options were last updated.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Make sure you&amp;#39;re backing up the master database!&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&lt;/font&gt;
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/vACZkDmtOnc" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/vACZkDmtOnc/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Where-are-sp_configure-settings-stored-Another-reason-to-backup-master.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=57d422d1-0f8d-4bfd-867d-f033590e5ea7</guid>
      <pubDate>Thu, 26 Apr 2012 10:15:00 -0700</pubDate>
      <category>Database Maintenance</category>
      <category>Inside the Storage Engine</category>
      <category>On-Disk Structures</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=57d422d1-0f8d-4bfd-867d-f033590e5ea7</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=57d422d1-0f8d-4bfd-867d-f033590e5ea7</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Where-are-sp_configure-settings-stored-Another-reason-to-backup-master.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=57d422d1-0f8d-4bfd-867d-f033590e5ea7</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=57d422d1-0f8d-4bfd-867d-f033590e5ea7</feedburner:origLink></item>
    <item>
      <title>Photos from the Mojave Desert</title>
      <description>&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;(Sitting in the back of the class while Kimberly&amp;#39;s teaching and I&amp;#39;m cranking through my massive backlog of blog posts.) &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2719.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2719.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;Inside a lave tube with light streaming through ceiling holes and through the dust. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;After SQL Connections at the start of April in Las Vegas we drove across to San Diego for a friend&amp;#39;s birthday party. We decided to bring all our camera gear along and drive through the Mojave National Preserve, renting a 4x4 so we could go off into the dirt roads where necessary. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;It&amp;#39;s&amp;nbsp;a pretty cool place - vast, of course - and one of the few times I&amp;#39;ve stood and had tens of miles of flat ground around me in all directions with nothing except scrub bushes and a small road, and deep, deep&amp;nbsp;blue sky overhead. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;There&amp;#39;s a good PDF map of the Preserve on the National Park Service website &lt;/font&gt;&lt;a href="http://www.nps.gov/moja/planyourvisit/upload/MOJAmap1.pdf" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;and I recommend perusing their &lt;a href="http://www.nps.gov/moja/index.htm" target="_blank"&gt;site&lt;/a&gt; before going. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;We entered the Preserve just off I-15 west of Vegas at a place call Nipton and headed down to the information center at Hole-In-The-Wall. This was a 20 mile drive on a dirt road, great fun in the 4x4 with wheel ruts throwing the SUV around (I love driving off-road, and fast if possible :-). Lots of bird life around and some ground squirrels too. At Hole-In-The-Wall (named after the more famous bandit hide-out in Wyoming) there are cool rock formations and rock-climbing routes. We drove back up to the main road and headed along to Kelso Depot, which used to be a major locomotive depot for the Union Pacific Railroad during WWII. It provided extra locomotives for the ore trains heading east - now it&amp;#39;s a really small town, but has a great little restaurant in the information center. Try the chili - it&amp;#39;s excellent. We then headed back north to I-15 through the Cinder Cone Lava Beds - lots of giant lava flows and cinder cones from volcanic vents. Turning off onto a tiny road (Aiken Mine Road) we headed out into the lava to find a lava tube that you can get down into and explore - this was fabulous and the highlight of the day for sure. It&amp;#39;s marked on the map I linked to above. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;After the party, the next day we drove down to San Diego airport and stopped at the flying park north of the city. This is a flying club and launch area set on high sea cliffs over the Pacific with excellent thermals for hang-gliding and parascending. At one point I counted over 30 flyers in the air. If we&amp;#39;d had more time we&amp;#39;d have signed up for some tandem flights. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;All in all&amp;nbsp;a great road trip, albeit a little short. We&amp;#39;re going to make a point of driving to more places in future - flying makes you miss so much! &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;All photos were taken with a Canon 5D Mark II with a 24-105mm f/4L lens shooting fully manual. It took me a while to figure out, but once you have the shutter speed/focal-length/&amp;#39;film&amp;#39; speed triangle worked out in your head, you&amp;#39;ll never go back from fully manual control of your camera. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Click on the photos for a 1024x768 version. Full-size versions available on request. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Below: Preserve entrance sign with scrub to the horizon and then mountains; abandoned cabin in a small homestead in the hamlet of Cima.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2682.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2682.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; &lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2689.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2689.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Below: Kimberly in front of the rocks at Hole-In-The-Wall; a cactus about to flower - we were just a bit too early for the flowering to be in full swing.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2698.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2698.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; &lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2708.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2708.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Below: the main cavern inside the lave tube. The light was just incredible, with powerful sun rays coming through the dust inside the cavern. It kind of reminded me of the scene in Raiders of the Lost Ark where Indy goes down into a chamber in the Egyptian city and a ray of light comes through a skylight, through a gem he&amp;#39;s holding and lights up a location on a map of the city. The second photo is of a smaller skylight with a really intense beam of light. Just stunning.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2711.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2711.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; &lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2717.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2717.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Below: the blocked-up entrance to an old mineshaft - maybe part of the old abandoned &lt;/font&gt;&lt;a href="http://www.backroadswest.com/MonthTrips/AikenMineMap.htm" target="_blank"&gt;&lt;font face="verdana,geneva" size="2"&gt;Aiken Mine&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt;?&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2726.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2726.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;Below: flyers over the Pacific just north of San Diego. The second photo has 8 flyers in!&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="verdana,geneva" size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2741.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2741.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font face="verdana,geneva" size="2"&gt; &lt;/font&gt;&lt;a href="http://www.SQLskills.com/blogs/paul/content/binary/mojave/_MG_2759.jpg"&gt;&lt;font face="verdana,geneva" size="2"&gt;&lt;img src="http://www.sqlskills.com/BLOGS/PAUL/image.axd?picture=2012%2f4%2fsmall_MG_2759.jpg" alt="" /&gt;&lt;/font&gt;&lt;/a&gt; 
&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/PaulSRandal/~4/L3XkayzR-_c" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/PaulSRandal/~3/L3XkayzR-_c/post.aspx</link>
      <author>paul.nospam@nospam.sqlskills.com (paul)</author>
      <comments>http://www.sqlskills.com/BLOGS/PAUL/post/Photos-from-the-Mojave-Desert.aspx#comment</comments>
      <guid isPermaLink="false">http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=1bb5741d-f9b9-40a9-8075-be8b52694588</guid>
      <pubDate>Fri, 20 Apr 2012 07:18:00 -0700</pubDate>
      <category>Photography</category>
      <category>Where In The World Are Paul And Kimberly</category>
      <dc:publisher>paul</dc:publisher>
      <pingback:server>http://www.sqlskills.com/BLOGS/PAUL/pingback.axd</pingback:server>
      <pingback:target>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=1bb5741d-f9b9-40a9-8075-be8b52694588</pingback:target>
      <slash:comments>16</slash:comments>
      <trackback:ping>http://www.sqlskills.com/BLOGS/PAUL/trackback.axd?id=1bb5741d-f9b9-40a9-8075-be8b52694588</trackback:ping>
      <wfw:comment>http://www.sqlskills.com/BLOGS/PAUL/post/Photos-from-the-Mojave-Desert.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.sqlskills.com/BLOGS/PAUL/syndication.axd?post=1bb5741d-f9b9-40a9-8075-be8b52694588</wfw:commentRss>
    <feedburner:origLink>http://www.sqlskills.com/BLOGS/PAUL/post.aspx?id=1bb5741d-f9b9-40a9-8075-be8b52694588</feedburner:origLink></item>
  </channel>
</rss>

