<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>183 : Comp::*</title><link>http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A002A00_/default.aspx</link><description>Tags: Comp::*</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Is solid state up to an ESE challenge?</title><link>http://blogs.msdn.com/brettsh/archive/2007/03/05/solid_5F00_state_5F00_ESE_5F00_test0.aspx</link><pubDate>Mon, 05 Mar 2007 19:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1810556</guid><dc:creator>BrettSh</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/brettsh/comments/1810556.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brettsh/commentrss.aspx?PostID=1810556</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.technet.com/efleis/" mce_href="http://blogs.technet.com/efleis/"&gt;~Eric&lt;/a&gt;
and I were at Fry's the other day, when we stopped by flash
drives ... we were debating how long until we see ESE (well Exchange
specifically, though I'm more concered about laptops) on such
drives.&amp;nbsp; With the advent of larger and large capacity SSDs, and
even commercial level drives like &lt;a href="http://www.tgdaily.com/2007/02/26/adtron_flash/" title="Some current SSD drives and near future offerings ..." mce_href="http://www.tgdaily.com/2007/02/26/adtron_flash/"&gt;these&lt;/a&gt;, becoming ever more &lt;a href="http://www.tgdaily.com/2006/10/17/samsung_ssd/" title="32 GB Samsung drive gets WHQL certification" mce_href="http://www.tgdaily.com/2006/10/17/samsung_ssd/"&gt;imminent&lt;/a&gt;,
such a possibility looms nearer and nearer.&amp;nbsp; And with a few ESE
consumers on the client O.S. I expect we will be seeing our databases
on SSDs on laptops within the year (maybe two).&lt;/p&gt;&lt;p&gt;We were discussing the various rumors about how fast they are at read vs. write, how low latency are the reads/writes, +how
reliable+ (if you remember there was always this issue with earlier
drives, SSD can only be written to so many times), how good at
random IO, and other properties that would make them useful as Exchange
storage, or at least whether they will be causing us problems on
laptops.&amp;nbsp; So curious was I, that of my own accord (and with my own
money I'll note) I went ahead and
bought about $100 worth of flash drives for running through our little JET engine, see if they survive ... &lt;br&gt;
&lt;/p&gt;


&lt;p&gt;Here is a list of the drives I acquired (except the &lt;font face="Verdana"&gt;last one, being a control of sorts that I already owned):&lt;/font&gt;&lt;br&gt;


 
&lt;/p&gt;



&lt;table x:str="" style="border-collapse: collapse; width: 730px; height: 132px;" border="0" cellpadding="0" cellspacing="0"&gt;

&lt;col style="width: 70pt;" width="106"&gt;
 &lt;col style="width: 96pt;" width="121"&gt;
 &lt;col style="width: 53pt;" width="70"&gt;
 &lt;col style="width: 48pt;" width="64"&gt;
 &lt;col style="width: 63pt;" width="84"&gt;
 &lt;col span="4" style="width: 48pt;" width="64"&gt;
 &lt;tbody&gt;
&lt;tr style="height: 12.75pt;" height="17"&gt;
  
&lt;td style="height: 12.75pt; width: 140pt;" height="17" width="186"&gt;Manufacturer&lt;br&gt;
&lt;/td&gt;



  
&lt;td style="width: 106pt;" width="141"&gt;&lt;font color="#0000ff"&gt;Model&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td style="width: 53pt;" width="70"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cap (GB)&lt;br&gt;
      &lt;br&gt;
&lt;/td&gt;



  
&lt;td style="width: 48pt;" width="64"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cost[1]&lt;br&gt;
&lt;/td&gt;



  
&lt;td style="width: 63pt;" width="84"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Warranty&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td style="width: 48pt;" width="64"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MBs/$
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  









&lt;/tr&gt;


&lt;tr style="height: 12.75pt;" height="17"&gt;
&lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  SanDisk&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;


&lt;td&gt;&lt;font color="#0000ff"&gt;Cruzer Micro Drive&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;


&lt;td x:num="" align="right"&gt;1.00&lt;br&gt;
      &lt;br&gt;
&lt;/td&gt;


&lt;td x:num="" align="right"&gt;$20&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="82.938323974609375" x:fmla="=C11*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;2 years&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="3.814697265625E-5" x:fmla="=D11*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;50.0&lt;/font&gt;
      &lt;br&gt;
&lt;/td&gt;



  




  




  




 &lt;/tr&gt;



 
&lt;tr style="height: 12.75pt;" height="17"&gt;
  
&lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;Kingston&lt;br&gt;
&lt;/td&gt;


&lt;td&gt;&lt;font color="#0000ff"&gt;DataTraveler&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;1.00&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;$20&lt;br&gt;
      &lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="82.335403442382812" x:fmla="=C12*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;5 years&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="2.288818359375E-5" x:fmla="=D12*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;50.0&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  




  




  




 &lt;/tr&gt;



 
&lt;tr style="height: 12.75pt;" height="17"&gt;
  
&lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp; Sony&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td&gt;&lt;font color="#0000ff"&gt;MicroVault&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;0.25[2]&lt;br&gt;
&lt;/td&gt;


&lt;td x:num="" align="right"&gt;$18&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="73.689559936523437" x:fmla="=C13*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;1 year&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="3.8909912109375E-4" x:fmla="=D13*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;13.8&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  




  




  




 &lt;/tr&gt;



 
&lt;tr style="height: 12.75pt;" height="17"&gt;
  
&lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp; PQI&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td&gt;&lt;font color="#0000ff"&gt;U320 / Traveling Disk&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;0.50&lt;br&gt;
&lt;/td&gt;


&lt;td x:num="" align="right"&gt;$15&lt;br&gt;
      &lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="68.662483215332031" x:fmla="=C14*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;unknown[3]&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="6.3323974609375E-4" x:fmla="=D14*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;33.3&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  




  




  




 &lt;/tr&gt;



 
&lt;tr style="height: 12.75pt;" height="17"&gt;
  
&lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp; Patriot&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td&gt;&lt;font color="#0000ff"&gt;XPorter&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;4.00&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;$24[4]&lt;br&gt;
      &lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="60.402191162109375" x:fmla="=C15*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;5 years&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="7.62939453125E-5" x:fmla="=D15*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;166.7&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  




  




  




 &lt;/tr&gt;



 
&lt;tr style="height: 12.75pt;" height="17"&gt;
  
&lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp; AComdata&lt;br&gt;
&lt;/span&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td&gt;&lt;font color="#0000ff"&gt;USB Hard Drive&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;320.00&lt;br&gt;
&lt;/td&gt;



  
&lt;td x:num="" align="right"&gt;$300&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="54.043449401855469" x:fmla="=C16*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;?3-5 years?&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  
&lt;td class="xl25" x:num="1.91497802734375E-3" x:fmla="=D16*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;1066.7&lt;/font&gt;&lt;br&gt;
&lt;/td&gt;



  




  




  




 &lt;/tr&gt;



 &lt;/tbody&gt;
&lt;/table&gt;



&lt;p&gt;&amp;nbsp;[1] For all units, the cost was rounded up by 1 cent to
non-retardo-consumer values.&amp;nbsp; Tax was not added, but it applies
here in Washington, 8-something% or so.&lt;br&gt;
&amp;nbsp;[2] I really wanted a larger Sony, but the 2 GB was $70
(too much), and I couldn't find a 512 MB or 1 GB unit anywhere on the
shelf.&amp;nbsp; Sigh.&amp;nbsp; :P&lt;br&gt;
&amp;nbsp;[3] Documentation claimed it was on web site (www.pqimemory.com),
but couldn't find it in a generous 40 seconds of searching.&lt;br&gt;
&amp;nbsp;[4] This one was an incredible value, it was
actually $70 in the store, but until 3/5/2007(&lt;span style="font-weight: bold;"&gt;so only today&lt;/span&gt;, yeah sorry for the late notice) you get a $45 rebate if you buy it at Fry's.&lt;/p&gt;


&lt;p&gt;All such drives claim USB 2.0 compliance on the
packaging, except perhaps the USB Hard Drive, not sure about that one.&lt;br&gt;
&lt;/p&gt;


&lt;p&gt;I don't want to rate these drives based on arbitrary tests[5], such
as whether it comes with a wrist strap, retractable USB plug, etc ...
we want our analysis to be on serious benchmarks that tell us if these
have the capability to back a real ESE database load / support
Exchange, and so we start our tests ...&lt;br&gt;
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Test 0; Part A: &lt;/span&gt;Getting the packaging off...&lt;br&gt;
&lt;/p&gt;&lt;p&gt;I've
definately no love of the ridiculously tough plastic modlded packaging
that these things come in ... and so I decided as the preliminary
test in our evaluation we would test the difficulty of removing the packaging and installing the
drive.&lt;/p&gt;&lt;p&gt;&amp;nbsp;(lower is better)&lt;br&gt;
4.0&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive A (SanDisk Cruzer) had
unusually tough to cut plastic, and an asymetrical shape as well (making getting the scissors to purchase hard) as very
large borders making the entire thing very tough to cut open.&lt;br&gt;2.0&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive B (Kingston
DataTraveler) had somewhat better packaging, thin-ish borders, and
slightly easier to cut, but 4 sided seals&lt;br&gt;2.8&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive C (Sony MicroVault)
Pretty easy to cut, reasonable sized shoulder, and only sealed on 3
sides (e.g. where the plastic is like heat fused).&lt;br&gt;3.4&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive D (PQI U230) hardish to
cut, but only sealed on 3 sides, last side is bent over, so easy to
open after 3 sides.&lt;br&gt;
4.4&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive E (Patriot XPorter) had
very tough packaging, the fused seal of plastic was right up against
the part where the plastic turns vertical, so there was very little
"shoulder" to cut along.&lt;br&gt;1.5&amp;nbsp;&amp;nbsp;&amp;nbsp; Drive F (AComdata USB Hard Drive) this
was (IIRC) "saran wrapped" cardboard box, which is the ultimate in
usable packaging.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;Now, you might say this ranks up there with the
wrist straps, and claim that my testing is not enough... no, no, if you
have got to build an Exchange drive off 10s or 100s of these,
you're going to start to care how hard it is to get them out of thier
plastic, this would be a serious TCO issue.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Part B:&lt;/span&gt; Installing the drive ...&lt;br&gt;Installing
the drive consisted of plugging in the drive, change to the drive ("g:"
or "h:" usually),"mkdir \SSDBashData", "cd SSDBashData", and running my
test script (I'll publish this soon) to make sure everything is working
and it can at least store a results file (no verification that the file
written is the file stored).&amp;nbsp; Sort of a pre-race inspection.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;3.0 &amp;nbsp;&amp;nbsp; SanDisk gets a base 2.5 for automatically
installing (or maybe just running) software.&amp;nbsp; And another .5 doc'd
because of how it brought up both a E:\ (CD-ROM RO drive) and an H:\
(USB Mass Storage RW drive), that's just weird.&lt;br&gt;
1.0 &amp;nbsp;&amp;nbsp; Kingston gets as good a score as I will give in this
test, it came up promptly, didn't install any software, AND didn't even
have any "cool programs" on the root of the drive.&amp;nbsp; Kingston
understands its just producing a stick of storage, and I appreciate
that.&lt;br&gt;
1.5 &amp;nbsp;&amp;nbsp; Sony gets .5 for having data in the root, but it
didn't install / run anything by default that I can tell so that's all
they get.&lt;br&gt;
1.0&amp;nbsp;&amp;nbsp;&amp;nbsp; PQI like Kingston gets the a plain storage device.&amp;nbsp; Good job.&lt;br&gt;
2.0&amp;nbsp;&amp;nbsp;&amp;nbsp; Patriot gets a .5 for bringing up two drives like
the SanDisk.&amp;nbsp; And .5 because one of the drives had software in
it.&amp;nbsp; Interestingly both were RW, but the drive with software was
only 24 MBs big, the other was 4 GBs.&lt;br&gt;
1.0&amp;nbsp;&amp;nbsp;&amp;nbsp; AComdata didn't install anything, came right up, removed properly.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;I wanted to complete this step also to verify I could use
the drives w/o accepting any EULAs and checking the documentation that
it didn't have any
DeWitt clauses (the term for the clause in EULAs of products like SQL
Server, Oracle, etc that say you can't
publish benchmark / performance numbers of the product).&amp;nbsp; I do not
believe ESE has any such limitation by the way (but one would have to
read the Windows OS or Exchange EULAs to be sure).&lt;/p&gt;&lt;p&gt;And
as a plus to make sure that terrible spyware they are all bound to
install is going to be universally installed when I get to performance
tests, surprisingly only one seemed to (not that I looked very hard).&lt;br&gt;
&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;Conclusion:&lt;/p&gt;&lt;p&gt;Total Scores (lower is better):&lt;br&gt;
&amp;nbsp; SanDisk&amp;nbsp; = 7.0&lt;br&gt;
&amp;nbsp; Kingston&amp;nbsp; = 3.0&lt;br&gt;
&amp;nbsp; Sony&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; = 4.3&lt;br&gt;
&amp;nbsp; PQI&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = 4.4&lt;br&gt;
&amp;nbsp; Patriot &amp;nbsp; &amp;nbsp; = 6.4&lt;br&gt;
&amp;nbsp; HD&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; = 2.5&lt;br&gt;
&lt;/p&gt;&lt;p&gt;Since the rest of the tests are likely to be based off metrics,
copy times, IOPS, etc, these subjective and arbitrary test results will
be used to break any ties, to allow the vendor feels maximally cheated
in its ratings. ;)&amp;nbsp; Next test up serial copy performance ...&lt;br&gt;
&lt;/p&gt;&lt;p&gt;Cheers,&lt;br&gt;
BrettSh&lt;br&gt;
&lt;/p&gt;&lt;p&gt;[5] Yes I do.&amp;nbsp; Seriously, the varying sizes of the drives
may throw some of the tests way off, or be difficult to make any claims
of scale ... if I
were doing real testing, I would be making Microsoft pay for the
hardware, getting those larger 32, 64, and 160 GB models mentioned in
some of the
above articles, and probably wouldn't be blogging about it. ;-)&amp;nbsp;
Sooo ... I
don't actually intend to answer the question posed in the title, just
sort of a check in to see where these cheap flash drives are ... and
they all[3] have warranties so I can always recoup my investment if ESE
makes them catch on fire.&lt;br&gt;
&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1810556" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A00_ESE/default.aspx">Comp::Impl::ESE</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A002A00_/default.aspx">Comp::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A00_Exchange/default.aspx">Comp::Impl::Exchange</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/BAS_5F00_TODO/default.aspx">BAS_TODO</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Z_5F002600_lt_3B003A003A00_ESE_3A003A00_SSD_2600_gt_3B00_/default.aspx">Z_&amp;lt;::ESE::SSD&amp;gt;</category></item><item><title>I decided to check out the size of Eric's DIT ...</title><link>http://blogs.msdn.com/brettsh/archive/2006/06/12/631516.aspx</link><pubDate>Mon, 12 Jun 2006 19:49:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:631516</guid><dc:creator>BrettSh</dc:creator><slash:comments>17</slash:comments><comments>http://blogs.msdn.com/brettsh/comments/631516.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brettsh/commentrss.aspx?PostID=631516</wfw:commentRss><description>&lt;font face="Verdana"&gt;... take some time, measuring the exact dimensions of &lt;a href="http://blogs.technet.com/efleis/archive/2006/06/08/434255.aspx"&gt;Eric's DIT&lt;/a&gt;
... and I must say, I've seen a fair amount of DITs in my time, and I can say with a
fair amount of &lt;span style="font-size: 12pt; font-family: Verdana;"&gt;certainty&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;, Eric's DIT is the biggest I've ever seen!&amp;nbsp; I can't believe what a massively huge a DIT Eric has.&lt;br&gt;
&lt;br&gt;
Note: while this is about an Active Directory database, Exchange is
based on the same database technology, so it would (and does) have similar space &lt;span style="font-size: 12pt; font-family: Verdana;"&gt;hierarchy&lt;/span&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;. &lt;/font&gt;&lt;br&gt;&lt;br&gt;
&lt;b&gt;Table of ESE Space usage:&lt;br&gt;
&lt;br&gt;
&lt;/b&gt;
&lt;/font&gt;&lt;font face="Verdana"&gt;
The black in this table is just the output from 3 of the columns of esentutl /ms adamntds.dit (&lt;a href="http://brett.shirley.name/blog/imgsrc/blog6_adamntds.ms.txt"&gt;original report&lt;/a&gt;), the &lt;font color="#0000ff"&gt;blue&lt;/font&gt; are columns/rows I've added to break out the space usage in a clearer way:&lt;/font&gt;&lt;br&gt;

 
&lt;table x:str="" style="border-collapse: collapse; width: 602pt;" border="0" cellpadding="0" cellspacing="0" width="801"&gt;
&lt;col style="width: 140pt;" width="186"&gt;
 &lt;col style="width: 106pt;" width="141"&gt;
 &lt;col style="width: 53pt;" width="70"&gt;
 &lt;col style="width: 48pt;" width="64"&gt;
 &lt;col style="width: 63pt;" width="84"&gt;
 &lt;col span="4" style="width: 48pt;" width="64"&gt;
 &lt;tbody&gt;&lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt; width: 140pt;" height="17" width="186"&gt;Name&lt;/td&gt;
  &lt;td style="width: 106pt;" width="141"&gt;&lt;font color="#0000ff"&gt;Friendly name&lt;/font&gt;&lt;/td&gt;
  &lt;td style="width: 53pt;" width="70"&gt;Owned&lt;/td&gt;
  &lt;td style="width: 48pt;" width="64"&gt;Available&lt;/td&gt;
  &lt;td style="width: 63pt;" width="84"&gt;&lt;font color="#0000ff"&gt;Owned(GB)&lt;/font&gt;&lt;/td&gt;
  &lt;td style="width: 48pt;" width="64"&gt;&lt;font color="#0000ff"&gt;Avail(GB)&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" style="width: 48pt;" width="64"&gt;&lt;font color="#0000ff"&gt;b-tree lvls&lt;/font&gt;&lt;/td&gt;
  &lt;td style="width: 48pt;" width="64"&gt;&lt;font color="#0000ff"&gt;% of DB&lt;/font&gt;&lt;/td&gt;
  &lt;td style="width: 48pt;" width="64"&gt;&lt;font color="#0000ff"&gt;% of Total Idxs&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&amp;lt;calc: DB real&amp;gt;&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;268179344&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;6088&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="" x:fmla="=C4*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="4.644775390625E-2" x:fmla="=D2*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.046&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25"&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;F:\DNT\adamntds.dit&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;268179344&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;218&lt;/td&gt;
  &lt;td class="xl25" x:num="2046.0460205078125" x:fmla="=C3*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;2046.046&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.6632080078125E-3" x:fmla="=D3*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.002&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25"&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&amp;lt;calc: datatable real&amp;gt;&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;268178751&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" x:fmla="=D7+D8+D9" align="right"&gt;&lt;font color="#0000ff"&gt;5689&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="2046.0414962768555" x:fmla="=C5*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;2046.041&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="4.340362548828125E-2" x:fmla="=D5*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.043&lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;datatable&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;268178751&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;2260&lt;/td&gt;
  &lt;td class="xl25" x:num="2046.0414962768555" x:fmla="=C6*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;2046.041&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.7242431640625E-2" x:fmla="=D7*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.017&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25"&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;br&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&amp;lt;calc: Row Data&amp;gt;&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" x:fmla="=C6-C8-C9" align="right"&gt;&lt;font color="#0000ff"&gt;186707905&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;2260&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1424.4682693481445" x:fmla="=C7*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;1424.468&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.7242431640625E-2" x:fmla="=D7*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.017&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;5&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.69620539082234467" x:fmla="=C7/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;69.62%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24"&gt;&lt;br&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;&amp;lt;Long Values&amp;gt;&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&lt;br&gt;
      &lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;42&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;18&lt;/td&gt;
  &lt;td class="xl25" x:num="3.204345703125E-4" x:fmla="=C8*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.373291015625E-4" x:fmla="=D8*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;2&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="1.5661161435311737E-7" x:fmla="=C8/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;0.00%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24"&gt;&lt;br&gt;
&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;br&gt;
&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;&amp;lt;sum: Idx Totals&amp;gt;&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;81470804&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;3411&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="621.57290649414062" x:fmla="=C9*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;621.573&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="2.602386474609375E-2" x:fmla="=D9*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.026&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;0&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.3037922413592003" x:fmla="=C9/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;30.38%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="1" x:fmla="=C9/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;100.00%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;PDNT_index&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Int: PDNT + Name&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;11482791&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;7&lt;/td&gt;
  &lt;td class="xl25" x:num="87.606742858886719" x:fmla="=C10*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;87.607&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="5.340576171875E-5" x:fmla="=D10*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;5&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="4.2817581804510639E-2" x:fmla="=C10/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;4.28%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.14094363178249719" x:fmla="=C10/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;14.09%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;nc_guid_Index&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Int: NC + objGuid&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;10870892&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;5&lt;/td&gt;
  &lt;td class="xl25" x:num="82.938323974609375" x:fmla="=C11*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;82.938&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="3.814697265625E-5" x:fmla="=D11*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="4.0535903466152115E-2" x:fmla="=C11/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;4.05%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.13343297802731885" x:fmla="=C11/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;13.34%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;INDEX_00090002&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Att: objectGuid&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;10791866&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;3&lt;/td&gt;
  &lt;td class="xl25" x:num="82.335403442382812" x:fmla="=C12*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;82.335&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="2.288818359375E-5" x:fmla="=D12*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="4.0241227527202841E-2" x:fmla="=C12/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;4.02%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.1324629863723942" x:fmla="=C12/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;13.25%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;INDEX_00000003&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Att: cn&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;9658638&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;51&lt;/td&gt;
  &lt;td class="xl25" x:num="73.689559936523437" x:fmla="=C13*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;73.690&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="3.8909912109375E-4" x:fmla="=D13*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="3.6015592610294397E-2" x:fmla="=C13/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;3.60%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.11855336544855995" x:fmla="=C13/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;11.86%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;INDEX_00090001&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Att: name&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;8999729&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;83&lt;/td&gt;
  &lt;td class="xl25" x:num="68.662483215332031" x:fmla="=C14*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;68.662&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="6.3323974609375E-4" x:fmla="=D14*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.001&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="3.3558621129299207E-2" x:fmla="=C14/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;3.36%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="0.11046569517099647" x:fmla="=C14/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;11.05%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;Ancestors_index&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Int: Ancestry&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;7917036&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;10&lt;/td&gt;
  &lt;td class="xl25" x:num="60.402191162109375" x:fmla="=C15*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;60.402&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="7.62939453125E-5" x:fmla="=D15*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="2.9521423544089213E-2" x:fmla="=C15/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;2.95%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="9.7176357802974428E-2" x:fmla="=C15/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;9.72%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;DRA_USN_index&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Int: Repl USN&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;7083583&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;251&lt;/td&gt;
  &lt;td class="xl25" x:num="54.043449401855469" x:fmla="=C16*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;54.043&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.91497802734375E-3" x:fmla="=D16*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.002&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="2.6413604024626149E-2" x:fmla="=C16/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;2.64%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="8.6946275870801518E-2" x:fmla="=C16/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;8.69%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;INDEX_0009030E&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Att: objectCategory&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;5274627&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;21&lt;/td&gt;
  &lt;td class="xl25" x:num="40.242210388183594" x:fmla="=C17*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;40.242&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.6021728515625E-4" x:fmla="=D17*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="1.9668282132870009E-2" x:fmla="=C17/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;1.97%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="6.4742542616861867E-2" x:fmla="=C17/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;6.47%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;DRA_USN_CREATED_index&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Int: Repl Created USN&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;4479144&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;34&lt;/td&gt;
  &lt;td class="xl25" x:num="34.17315673828125" x:fmla="=C18*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;34.173&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="2.593994140625E-4" x:fmla="=D18*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="1.6702046970478085E-2" x:fmla="=C18/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;1.67%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="5.4978517212129145E-2" x:fmla="=C18/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;5.50%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;INDEX_00020078&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Att: uSNChanged&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;4279711&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;0&lt;/td&gt;
  &lt;td class="xl25" x:num="32.651603698730469" x:fmla="=C19*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;32.652&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="" x:fmla="=D19*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="1.5958391635114151E-2" x:fmla="=C19/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;1.60%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="5.2530609615685148E-2" x:fmla="=C19/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;5.25%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;deltime_index&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Int: deltime&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;371267&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;15&lt;/td&gt;
  &lt;td class="xl25" x:num="2.8325424194335937" x:fmla="=C20*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;2.833&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="1.1444091796875E-4" x:fmla="=D20*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.000&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="1.3843981958580672E-3" x:fmla="=C20/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;0.14%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="4.5570558012413874E-3" x:fmla="=C20/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;0.46%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr style="height: 12.75pt;" height="17"&gt;
  &lt;td style="height: 12.75pt;" height="17"&gt;&lt;span style=""&gt;&amp;nbsp;
  &lt;/span&gt;INDEX_00020030&lt;/td&gt;
  &lt;td&gt;&lt;font color="#0000ff"&gt;Att: isDeleted&lt;/font&gt;&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;261493&lt;/td&gt;
  &lt;td x:num="" align="right"&gt;2929&lt;/td&gt;
  &lt;td class="xl25" x:num="1.9950332641601563" x:fmla="=C21*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;1.995&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl25" x:num="2.234649658203125E-2" x:fmla="=D21*8/1024/1024" align="right"&gt;&lt;font color="#0000ff"&gt;0.022&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl26" x:num="" align="right"&gt;&lt;font color="#0000ff"&gt;4&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="9.750676398104695E-4" x:fmla="=C21/$C$3" align="right"&gt;&lt;font color="#0000ff"&gt;0.10%&lt;/font&gt;&lt;/td&gt;
  &lt;td class="xl24" x:num="3.2096528714752833E-3" x:fmla="=C21/$C$9" align="right"&gt;&lt;font color="#0000ff"&gt;0.32%&lt;/font&gt;&lt;/td&gt;
 &lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;
&lt;font face="Verdana"&gt;... deleted about a dozen small indices ... &lt;br&gt;
&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;br&gt;
I'll discuss the permutations I performed on the esentutl /ms output, in the hopes it will be clear ...&lt;br&gt;
&lt;br&gt;
First I sum up the owned space for all indices in the datatable, this comes out to &lt;/font&gt;&lt;font color="#0000ff"&gt;81470804&lt;/font&gt;&lt;font face="Verdana"&gt;.&amp;nbsp;
Note the #'s above may not add up exactly because I deleted a dozen or
so super small indices.&amp;nbsp; I summed up all the indices because it
makes the next calculation easier, and also so we can get the "% of
Total Idxs" column as well.&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font face="Verdana"&gt;So first understand that ESE's "owned" space is &lt;/font&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;hierarchical&lt;/span&gt;&lt;font face="Verdana"&gt;, so the "datatable" owns all the space owned by each of
the indices and the LV B-Tree in the datatable.&amp;nbsp; But the primary B-Tree for the datatable
also contains (and thus owns) the normal row data.&amp;nbsp; So the real data that is in the
regular row data for the datatable is &lt;/font&gt;268178751 &lt;font face="Verdana"&gt;(datatable)&lt;/font&gt; &lt;font face="Verdana"&gt;- 42 (datatable's LV B-Tree owned) - &lt;/font&gt;&lt;font color="#0000ff"&gt;81470804&lt;/font&gt;&lt;font face="Verdana"&gt; (owned by sum of all datatable indices) = &lt;/font&gt;&lt;font color="#0000ff"&gt;186707905&lt;/font&gt;&lt;font face="Verdana"&gt; (i.e. the "&amp;lt;calc: Row Data&amp;gt;" line).&lt;br&gt;
&lt;br&gt;
I then created a couple columns to turn this page counts into a usable unit (GBs), i.e. &amp;lt;# of pages&amp;gt; * 8 / 1024 / 1024.&lt;br&gt;
&lt;br&gt;
Finally I added a friendly name column, so you'd know roughly what the index was indexing.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Some analysis:&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
From the above table we can easily see the row data 1,424 GBs and all
the indices combined is 621 GBs.&amp;nbsp; This breaks out like so:&lt;br&gt;
&lt;img src="http://brett.shirley.name/blog/imgsrc/blog6_RowIndexPie.gif"&gt;
&lt;br&gt;Based on the table above this is showing us a full 30% of this
database is indices!!!&amp;nbsp; That's a huge amount.&amp;nbsp; This isn't a
common space breakdown for most AD objects, as the objects making up
Eric's DIT are very very small / light weight.&amp;nbsp; He was just
creating containers w/ minimal attributes (see Eric's initial post),
and so just the base set of indices on a basic object lead up
to a significant portion of the objects overall "footprint" in the DB.&lt;br&gt;
&lt;br&gt;
As for the breakup of the individual index usages, it looks something like this:&lt;br&gt;
&lt;img src="http://brett.shirley.name/blog/imgsrc/blog6_IndexBreakout.gif"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font face="Verdana"&gt;Of the secondary indices on the datatable,
10 are always updated!&amp;nbsp; And another 2 (the very slender ones) are
only updated on delete.&amp;nbsp; Since there are over 2 billion objects in
this database, that means we inserted about 22 billion B-Tree entries,
kind of neat.&lt;br&gt;
&lt;br&gt;
One last, somewhat technical thing that I think a few of you might find &lt;/font&gt;&lt;span style="font-size: 12pt; font-family: Verdana;"&gt;interesting&lt;/span&gt;&lt;font face="Verdana"&gt;, &lt;/font&gt;&lt;font face="Verdana"&gt;is that even the
largest 1,424 GB primary B-Tree is only 5 levels deep.&amp;nbsp; This means that to
locate a specific row (by DNT) will only take 5 disk seeks in the worst
case (cold cache).&amp;nbsp; B-Trees have this very nice high fan out, that keeps disk seeks minimal.&lt;br&gt;
&lt;br&gt;
Interestingly, I &lt;a href="http://brett.shirley.name/blog/imgsrc/blog6_RootPage.txt"&gt;dumped the root page&lt;/a&gt;, and it only has 3 nodes (TAG 0
doesn't count), what this means is that we could add about 100x more
data to this b-tree and there would be no increase in the # of disk seeks to fetch a row
from this table.&lt;br&gt;
&lt;br&gt;
Anyway that seems like enough for now ...&lt;br&gt;
&lt;/font&gt;&lt;br&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=631516" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A00_ESE/default.aspx">Comp::Impl::ESE</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A002A00_/default.aspx">Comp::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A00_AD/default.aspx">Comp::Impl::AD</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A002A00_/default.aspx">Comp::Impl::*</category></item><item><title>Writing a Unicode file via perl ...</title><link>http://blogs.msdn.com/brettsh/archive/2006/06/07/620986.aspx</link><pubDate>Wed, 07 Jun 2006 20:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:620986</guid><dc:creator>BrettSh</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/brettsh/comments/620986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brettsh/commentrss.aspx?PostID=620986</wfw:commentRss><description>&lt;font face="Verdana"&gt;Several months ago someone filed bugs across
Windows Vista to make sure all performance monitoring .ini files were
Unicode, so the files could be properly localized ("translated") to
various languages (so we could have Korean, or Hindi descriptions).&amp;nbsp; A noble goal to be sure.&lt;br&gt;
&lt;br&gt;
For most people this was as easy as checking out the file for editing,
opening it in notepad, doing a "save as", picking Unicode.&amp;nbsp; ESE
however has ALOT of perf counters (esp. when you Squeaky Lobster a
machine - more on that later) so we use a perl script to generate
several parts of the performance monitoring files, the .ini, the .hxx,
and some fairly repatitive .cxx code that gets compiled into ESE binaries ... I know some of you are saying,
"You can use perl on Windows?" ...&lt;br&gt;
&lt;br&gt;
Anyway, I looked all over the internet, and couldn't even find help
when I &lt;a href="http://www.google.com/search?q=site%3Ablogs.msdn.com%2Fmichkap"&gt;scoped to Mr. Unicode's blog&lt;/a&gt; ... then I posted to an internal
alias on perl at Microsoft, and someone came to my rescue, since he
said he didn't mind and I couldn't find it on the internet (at least at
the time), I'd figured I'd post his comments ...&lt;br&gt;
&lt;br&gt;
His comments, I wholesale included in our perl code
(I had to read it twice to really grok how the ":raw" type parts were
like piping through converting text commands, but in reverse so you read
them right to left):&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;#&lt;br&gt;# Some notes from someone smarter than me about Perl and Unicode ...&lt;br&gt;# ----&lt;br&gt;#&lt;br&gt;# Which encoding do you want to use? UTF16-LE is the standard on Windows (nearly&lt;br&gt;# all characters are encoded as 2 bytes), UTF8 is the standard everywhere else &lt;br&gt;# (characters are variable length and all ASCII characters are a single byte).&lt;br&gt;#&lt;br&gt;# Here's what I've figured out after lots of experimentation. To get UTF16-LE &lt;br&gt;# output you need to play a few games with perl...&lt;br&gt;#&lt;br&gt;#   open my $FH, "&amp;gt;:raw:encoding(UTF16-LE):crlf:utf8", "e:\\test.txt";&lt;br&gt;#   print $FH "\x{FEFF}";&lt;br&gt;#   print $FH "hello unicode world!\nThis is a test.\n";&lt;br&gt;#   close $FH;&lt;br&gt;# Reading the IO layers from right to left (the order that they will be applied &lt;br&gt;# as they pass from perl to the file) ...&lt;br&gt;#&lt;br&gt;# Apply the :utf8 layer first. This doesn't do much except tell perl that we're &lt;br&gt;# going to pass "characters" to this file handle instead of bytes so that it &lt;br&gt;# doesn't give us "Wide character in print ..." warnings.&lt;br&gt;#&lt;br&gt;# Next, apply the :crlf layer as text goes from perl out to the file. This &lt;br&gt;# transforms \n (0x0A) into \r\n (0x0D 0x0A) giving you DOS line endings. Perl &lt;br&gt;# normally applies this by default on Windows but it would do it at the wrong &lt;br&gt;# stage of the pipeline so we removed it (see below), this is where it ought to &lt;br&gt;# be.&lt;br&gt;#&lt;br&gt;# Next apply the UTF16-LE (little endian) encoding. This takes the characters &lt;br&gt;# and transforms them to that encoding. So 0x0A turns into 0x0A 0x00. Note that &lt;br&gt;# if you just say 'UTF16' the default endianness is big endian which is &lt;br&gt;# backwards from how Windows likes it. However, because we're explicitly &lt;br&gt;# specifiying the endianness perl will not write a BOM (byte order mark) at the &lt;br&gt;# beginning of the file. We have to make up for that later.&lt;br&gt;#&lt;br&gt;# Finally, the :raw psuedo layer just removes the default (on Windows) :crlf &lt;br&gt;# layer that transforms \n into \r\n for DOS style line endings. This is &lt;br&gt;# necessary because otherwise it would be applied at the wrong place in the &lt;br&gt;# pipeline. Without this the encoding layer would turn 0x0A into 0x0A 0x00 and &lt;br&gt;# then the crlf layer would turn that into 0x0D 0x0A 0x0A and that's just goofy.&lt;br&gt;#&lt;br&gt;# Now that we've got the file opened with the right IO layers in place we can &lt;br&gt;# almost write to it. First we need to manually write the BOM that will tell &lt;br&gt;# readers of this file what endianness it is in. That's what the &lt;br&gt;# print $FH "\x{FEFF}" does.&lt;br&gt;#&lt;br&gt;# Finally we can just print text out.&lt;br&gt;#&lt;br&gt;# If you want UTF8, I'm pretty sure it's a lot easier. Also, this is also a lot &lt;br&gt;# easier on unix, the CRLF ordering problem is definitely a bug but the default &lt;br&gt;# to big endian (and ensuing games to get the BOM to output without a warning) &lt;br&gt;# are by design. I'm pretty sure that none of the core perl maintainers use perl &lt;br&gt;# on Windows (even though at least one keeps perl on VMS working...).&lt;br&gt;#&lt;br&gt;&lt;br&gt;#&lt;br&gt;# Until Exchange decides it wants a Unicode eseperf.ini, we're going to generate&lt;br&gt;# the old ASCII one.  Also if Exchange wants one, it will have to update it's&lt;br&gt;# version of Perl to understand the open modes we're using below.  Currently we&lt;br&gt;# get this error:&lt;br&gt;#	1&amp;gt;Unknown open() mode '&amp;gt;:raw:encoding(UTF16-LE):crlf:utf8' at .\perfdata.pl line 325,  line 6189.&lt;br&gt;#&lt;br&gt;&lt;br&gt;&lt;br&gt;if ( $ESENT ){ #ifdef ESENT &lt;br&gt;&lt;br&gt;	open( INIFILE, "&amp;gt;:raw:encoding(UTF16-LE):crlf:utf8", "$INIFILE" ) || die "Cannot open $INIFILE: ";&lt;br&gt;	print INIFILE "\x{FEFF}";  # print BOM (Byte Order Mark) for the unicode file&lt;br&gt;&lt;br&gt;} else { #else&lt;br&gt;&lt;br&gt;	open( INIFILE, "&amp;gt;$INIFILE" ) || die "Cannot open $INIFILE: ";&lt;br&gt;&lt;br&gt;} #endif&lt;br&gt;&lt;/pre&gt;
&lt;br&gt;
The code worked like a charm, yeah Unicode esentprf.ini.&amp;nbsp; Well,
until I sync'd the code to
Exchange then it broke, that is the source of the "if ( $ESENT )" which
is only defined when we build the ESE sources for Windows.&amp;nbsp; I
should mention in closing that I know this code works for perl 5.8.7,
and I know it does &lt;i&gt;not&lt;/i&gt; work for perl 5.6.1.&amp;nbsp; I've heard the perl support got much better in 5.8 or so...&lt;br&gt;
&lt;br&gt;
Oh I guess that's code, so I'm required to say something like:&lt;br&gt;
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm (I'm having a hard time
imagining how such a small snipit could be subject to that, but
whatever).&lt;br&gt;
&lt;br&gt;Oh here is what the &lt;a href="http://blogs.msdn.com/michkap/archive/2005/01/20/357028.aspx"&gt;BOM&lt;/a&gt; is, and &lt;a href="http://www.google.com/search?q=%22Byte+Order+Mark%22+site%3Ablogs.msdn.com%2Fmichkap"&gt;more on the BOM&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
&lt;b&gt;Update 2006/08/20:&lt;/b&gt; Turned out Exchange wanted a Unicode
eseperf.ini after all, and has updated thier version of perl, so good
news the NT - Ex code bases grow that much more similar.&lt;br&gt;
&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=620986" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A002A00_/default.aspx">Comp::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A002A00_/default.aspx">Comp::Impl::*</category></item><item><title>thread degraded mode ... the sequel.</title><link>http://blogs.msdn.com/brettsh/archive/2006/03/19/554740.aspx</link><pubDate>Sun, 19 Mar 2006 12:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:554740</guid><dc:creator>BrettSh</dc:creator><slash:comments>23</slash:comments><comments>http://blogs.msdn.com/brettsh/comments/554740.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brettsh/commentrss.aspx?PostID=554740</wfw:commentRss><description>&lt;font face="Verdana"&gt;I've run in &lt;a HREF="/brettsh/archive/2006/03/16/553388.aspx"&gt;thread degraded mode&lt;/a&gt; for 2 or 3 weeks
without a hitch before, this time I wasn't so lucky.&amp;nbsp; After about
6 hours explorer spun up taking 50% CPU (given it's a HT machine, that
usually means 1 thread spinning endlessly).&amp;nbsp; Heuve!&amp;nbsp; That
just won't do.&amp;nbsp; But we can merely degrade this thread too ... once we
find it ...&lt;br&gt;
&lt;br&gt;
So I ctrl-C in the debugger window that got started from &lt;a HREF="/brettsh/archive/2006/03/16/553388.aspx"&gt;part 1&lt;/a&gt; ...&lt;br&gt;&lt;/font&gt;
&lt;blockquote&gt;&lt;font face="Verdana"&gt;
Alternatively: If you don't have debugger attached up to the process yet,
you can do so, by going to the C:\debuggers directory (expained in &lt;a HREF="/brettsh/archive/2006/03/16/553388.aspx"&gt;part 1&lt;/a&gt;), typing "tlist" to
find the Process ID (PID) of the explorer.exe process, and then run "ntsd
-p &amp;lt;PID&amp;gt;".&lt;/font&gt;&lt;br&gt;
&lt;/blockquote&gt;
&lt;font face="Verdana"&gt;
At the debug prompt we type "!runaway", which gives you something like this:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:076&amp;gt; !runaway&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; User Mode Time&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 73:1acc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 6:36:51.328&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 1:ec0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 1:39:27.203&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 15:1ac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:06:01.640&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 12:f94&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:05:44.281&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ... deleted the other ~80 threads ...&lt;br&gt;
The time column is cumulative CPU time the thread has used.&lt;br&gt;
&lt;br&gt;
At this point you 'g' the debugger, wait for a short timed interval,
then hit ctrl-C again to re-break into the debugger.&amp;nbsp; I waited 30
seconds myself, and then re-run the !runaway command ...&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:082&amp;gt; !runaway&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; User Mode Time&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Thread&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;font color="#ff0000"&gt;&lt;b&gt;73&lt;/b&gt;&lt;/font&gt;:1acc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 6:3&lt;font color="#0000ff"&gt;&lt;b&gt;7:21&lt;/b&gt;&lt;/font&gt;.359&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 1:ec0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 1:39:28.406&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 15:1ac&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:06:01.671&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 12:f94&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 days 0:05:44.281&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br&gt;
You can see from the &lt;font color="#0000ff"&gt;&lt;b&gt;blue&lt;/b&gt;&lt;/font&gt; that
thread 73 is our culprit, as it's cumulative CPU time went up by nearly
exactly 30 seconds.&amp;nbsp; Note the culprit thread isn't guaranteed to
be the top thread, but it was in my case.&lt;br&gt;
&lt;br&gt;
So the "~f" command from the first blog affects the "current" thread in
the debugger, which you can see above is thread 82, not exactly, well
... not at all what is desired.&amp;nbsp; We want thread 73 to be frozen
though, so here is how you freeze a specific thread:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:082&amp;gt; &lt;font color="#000000"&gt;~&lt;font color="#ff0000"&gt;&lt;b&gt;73&lt;/b&gt;&lt;/font&gt;f&lt;/font&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:082&amp;gt; g&lt;br&gt;
Now I'm back to normal, CPU settles down, go back to work.&lt;br&gt;
&lt;br&gt;Sometime later the next thing is I AV'd when I typed a search in the MSN Desktop
Search box on the task bar &lt;a href="http://brett.shirley.name/blog/imgsrc/blog2_taskband.jpg"&gt;see the bottom of my start bar&lt;/a&gt; ... since MSN DS was the source of the
original issue, &lt;/font&gt;&lt;font face="Verdana"&gt;not sure
why I'd have expected that to work (I can be really stupid sometimes, I'll blog more about that)&lt;/font&gt;&lt;font face="Verdana"&gt;, one more thread to freeze and
then 'g' the process.&lt;br&gt;
&lt;br&gt;
The last thing that AV'd is &amp;lt;window&amp;gt;-E.&amp;nbsp; Don't know why that AV'd, but don't care I can live without file explorer.&lt;br&gt;
&lt;br&gt;
Though I am not sure I can live without desktop search ... I sense a reboot is in my future ...&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=554740" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A002A00_/default.aspx">Comp::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A002A00_/default.aspx">Comp::Impl::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A00_WinNT/default.aspx">Comp::Impl::WinNT</category></item><item><title>Try explorer's thread degraded mode ...</title><link>http://blogs.msdn.com/brettsh/archive/2006/03/16/553388.aspx</link><pubDate>Fri, 17 Mar 2006 04:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:553388</guid><dc:creator>BrettSh</dc:creator><slash:comments>61</slash:comments><comments>http://blogs.msdn.com/brettsh/comments/553388.aspx</comments><wfw:commentRss>http://blogs.msdn.com/brettsh/commentrss.aspx?PostID=553388</wfw:commentRss><description>&lt;font face="Verdana"&gt;On any given day that is past say 7 days of uptime, I have 100 - 300 windows open, not kidding, here is a shot of &lt;a href="http://brett.shirley.name/blog/imgsrc/blog2_taskband.jpg"&gt;my current task bar&lt;/a&gt;
... there shouldn't be anything msft confidential there, at least that
you'd actually be able to read more than 4 or 5 letters of ... I know
by heart I have 41 rows, so that's 204 windows open there ... I turn
off that "group similar taskbar buttons" "feature", and the buttons show
up in order, so a given "job" usually has task buttons around each
other (in fact the last 6 buttons there are for this blog post) ... so what
does this have to do with explorer ... &lt;br&gt;
&lt;br&gt;
The basic upshot of this computing lifestyle choice is that my heart
skips a beat and then visceral pain sets in whenever explorer AVs
(Access Violation) ... explorer is what controls the start bar, and
when it restarts the task buttons will be in a random order ... for the
*nix types, this is like your window manager core dumping ... it's
awefulness.&lt;br&gt;
&lt;br&gt;
Right so getting to thread degraded mode ... my own term, for when you
simply freeze the AV'd thread in a process, and allow the process to
continue on its merry way.&amp;nbsp; You
can do this because maybe the thread may not be doing something
particularly useful, ergo it is "not a very serious AV", or maybe call
it a "slight AV".&amp;nbsp; The process often (sometimes?) continues to
function.&lt;br&gt;
&lt;br&gt;
How to use thread degraded mode:&lt;br&gt;
&lt;br&gt;
First, you will have to prepare your machine for initiating thread degraded mode ...&lt;br&gt;
&lt;br&gt;
You will need to get a user mode debugger (there may already be a
ntsd.exe in your system32, which should work, but no one uses that anchient one) go get a
&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;good version&lt;/a&gt;, which for an x86 box installs from this &lt;a href="http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.6.03.5.exe"&gt;exe&lt;/a&gt; (i think).&amp;nbsp; Install it
to C:\debuggers, everyone &lt;a HREF="/larryosterman/archive/2006/03/01/541403.aspx"&gt;else&lt;/a&gt; around here seems to.&lt;br&gt;&lt;br&gt;
Navigate to this registry key (&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;103861&amp;amp;sd=tech"&gt;read more about it&lt;/a&gt;):&lt;br&gt;
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug"&lt;br&gt;
Create registry string (REG_SZ) value with a name of "Debugger" and value of&lt;br&gt;
"C:\debuggers\ntsd -p %ld -g -G -e %ld"&lt;br&gt;
If it already has a value you may want to save it.&lt;br&gt;&lt;br&gt;
You only have to do those steps once, and now you are ready to run in thread degraded mode, if the need should arise.&lt;br&gt;
&lt;br&gt;
The next time explorer (or any application) crashes / AVs on you, you
will get an option to debug the process ... select "Debug" or "Yes" or
whatever ... this will open a debugger attached to explorer ( you'll
probably have to alt-tab to find this new debugger window, because the
task bar will be frozen/unresponsive while you debug it ;).&lt;br&gt;
&lt;br&gt;
The debugger will open with the AV'ing thread as the current thread, so
use "~f&amp;lt;enter&amp;gt;" (that is a tilde), to freeze this thread.&amp;nbsp;
Then "g&amp;lt;enter&amp;gt;" will let the task bar come back to you
(maybe).&amp;nbsp; At this point you should be praying that the thread you
froze isn't holding any crucial critical sections or locks, and that
things will return to "normal" ... your mileage may vary ... greatly.&lt;br&gt;
&lt;br&gt;It will look like this:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:008&amp;gt; ~f&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:008&amp;gt; g&lt;br&gt;
&lt;br&gt;
After you 'g' it, it will start printing this kind of thing in the debugger ...&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System 0: 1 of 84 threads are frozen&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System 0: 1 of 84 threads were frozen&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System 0: 1 of 84 threads are frozen&lt;br&gt;
That's just explorer letting you know it loves you for not letting go, and putting it on life support.&lt;br&gt;
&lt;br&gt;
Oh the crash was in MSN Desktop Search, but I don't fault (intended ;)
them because I'm running the first beta of the software released in Dec
2004, I've heard they've had an update since then.&lt;br&gt;
&lt;br&gt;
Anyway, as of approximately 8:20 AM (PST) yesterday (wed) morning, I've been
running in thread degraded mode ... as I finish this post I've got 4
frozen threads ... there were a few more threads with "issues" but I don't
have time to blog about them right yet ...&lt;br&gt;
&lt;br&gt;
&lt;/font&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=553388" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/brettsh/archive/tags/_2A003A003A00_So+fetch/default.aspx">*::So fetch</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A002A00_/default.aspx">Comp::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A002A00_/default.aspx">Comp::Impl::*</category><category domain="http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A00_WinNT/default.aspx">Comp::Impl::WinNT</category></item></channel></rss>