<?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::Impl::*</title><link>http://blogs.msdn.com/brettsh/archive/tags/Comp_3A003A00_Impl_3A003A002A00_/default.aspx</link><description>Tags: Comp::Impl::*</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><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>