A sampling of the analysis data from the new version of SPSiteManager


Our team just got back from a “SWAT” team
approach with one of our customers and we spent the better part of two days
discussing SPSiteManager and SPUserUtil.  We spent some time digging into
the data reported by the new version of SPSiteManager, and we made a few slight
changes to incorporate some items based on on our experience.  Nothing
major, but it simply enhances and adds to the "Wow!" experience we've been
getting..

  • Level 2 analysis did not need to write out <doclib>/<list>
    elements, as they will always be blank at that level of analysis.  We
    only look at those items in a Level 3 analysis.
  • Added databaseserver and databasename
    attributes to <web> elements. This aids in filtering data for webs specific
    to their database location. Currently, SPSiteManager writes it’s <web>
    elements in a hierarchical fashion, which makes it difficult to filter in
    Excel etc. Adding these attributes helps to consolidate and look at common
    web specific data.
  • The Security ACE values did not contain the
    proper number in it’s <warning> elements, and this was corrected.
  • It was thought that the Storage value was
    not correct when reporting for each site, if the items in the libraries had
    multiple versions. I use
    SPSite.UsageInfo.Storage to collect this value, and did some
    testing on my SP2 box, and it worked great, so this may be a pre-SP2 bug.
  • Previously, Warnings were only reported for
    the “Worst” Library, List, Folder found on a site. Now warnings are
    generated for “EACH” instance found on all webs.

Overall, everyone who has had a chance to see the
data it can provide has been left with a "Wow!" factor, and of course, the
feature ideas started pummeling in :).  We told them that we had "Locked"
down any more additions, as these features, combined with the features in
SPUserUtil were merging into one common tool (See my previous posting "With
Great Power comes Great Responsibility or Wicked Cool stuff you can do in
SPSiteManager 2.0
" ).  Any additional changes are going to be bug
fixes.  Trust me....Every day I tell keep myself from listening to the
voice inside my head saying "Implement me! Implement me!".

For the limited number of enterprise customers
we’ve been working with, and one-off PSS cases we’ve used this on, the overall
response we’ve been getting can be broken down into the following sentences:

  • "Sweet!!!"
  • "Wow!, no wonder that site has been
    performing badly."
  • “This is cool, you’ve just provided me with
    the data I’ve been spending months of manual labor to compile in less than 2
    minutes”
  • “We're eager to meet up and see what this
    tool can do, so drop us your calendar, so we can get 30 in soon.”
  • “We are thinking of building or extending
    your tool to generate weekly report which can give us information about
    these type of issues…”
  • “Will this include features matching those
    of SPReports?”

    • The answer is yes…I’ve already contacted
      the author of the original SPReports, and we are incorporating those
      features into a future version of the tool

It can report where you have exceeded capacity
planning guidelines and these issues can have varying levels of impact such as
(but not limited to) the following:

  • Service outages for short durations of time
    due to SQL Blocking.
  • DB Connectivity issues because of the
    aforementioned SQL Blocking
  • Crawl degradation

SPSiteManager now reports content makeup within
the <doctypes> element of the XML report.  For example:



<doctypes>



       



<doctype

type=
".aspx"
count=
"77132"
attachmentcount=
"0"
/
>



       



<doctype

type=
".doc"
count=
"15845"
attachmentcount=
"18"
/
>



       



<doctype

type=
".gif"
count=
"135"
attachmentcount=
"0"
/
>



       



<doctype

type=
".jpg"
count=
"134"
attachmentcount=
"0"
/
>


       



<doctype

type=
".lst"
count=
"72"
attachmentcount=
"0"
/
>



       



<doctype

type=
".msg"
count=
"267"
attachmentcount=
"0"
/
>



       



<doctype

type=
".pdf"
count=
"189"
attachmentcount=
"0"
/
>



       



<doctype

type=
".ppt"
count=
"326"
attachmentcount=
"126"
/
>


       



<doctype

type=
".txt"
count=
"349"
attachmentcount=
"0"
/
>



       



<doctype

type=
".xls"
count=
"228"
attachmentcount=
"36"
/
>



       



<doctype

type=
".xml"
count=
"116"
attachmentcount=
"0"
/
>


       



<doctype

type=
".zip"
count=
"344"
attachmentcount=
"0"
/
>



</doctypes>

In the example above, 15,845 doc files were
found, of which 18 of them were added to the system as List Attachments.

Site structure is then broken down as follows (I
apologize for the formatting...I'm working on new ways to view this data once
it's collected):


   



<site

url=
"http://www.tailspintoys.com/bigsites/asite"

      databaseserver=
"TAILSPINSQL"
databasename=
"ANOTHER_CONTENT_DB"


     
usercount=
"1"
id=
"06443320-cf03-40b7-97d8-883233af1a35"
webcount=
"24"
storage=
"1534131325"


     
quotaid=
"0"
quotastoragemax=
"0"
quotastoragewarn=
"0"
readlocked=
"False"
writelocked=
"False">



 



<web

url=
"http://www.tailspintoys.com/bigsites/asite"
databaseserver=
"TAILSPINSQL"
databasename=
"ANOTHER_CONTENT_DB"



      



title=
"Team
Web Site"

description=
""
lcid=
"1033"
template=
"STS"


       uniqueperms=
"True"
acecount=
"1"
doclibcount=
"1"
listcount=
"6"
maxwebpartperpage=
"4"

       minwebpartperpage=
"0"
avgwebpartperpage=
"1">


   



<doclibs>



     



<doclib

Title=
"Shared
Documents"


              Description=
"Share
a document with the team by adding it to this document library."


              url=
"Shared
Documents"

itemcount=
"6"
/
>



   



</doclibs>



   



<lists>



     



<list

Title=
"Announcements"



            Description=
"Use
the Announcements list to post messages on the home page of your
site."




            url=
"/bigsites/asite/Lists/Announcements/AllItems.aspx"
itemcount=
"1"
/
>



     



<list

Title=
"Contacts"



            Description=
"Use
the Contacts list for information about people that your team
works with."



            url=
"/bigsites/asite/Lists/Contacts/AllItems.aspx"
itemcount=
"0"
/
>



     



<list

Title=
"Events"



            Description=
"Use
the Events list to keep informed of upcoming meetings,
deadlines, and other important events."




            url=
"/bigsites/asite/Lists/Events/AllItems.aspx"
itemcount=
"0"
/
>



   



</lists>






… // Some content removed for brevity.





 
<web
url=
"http://www.tailspintoys.com/bigsites/asite/asite_d1_w1/asite_d2_w1/asite_d3_w1/asite_d4_w1/asite_d5_w1"



       databaseserver=
"TAILSPINSQL"
databasename=
"ANOTHER_CONTENT_DB"



       title=title=title=title=
"Team
Web Site"

description=
""
lcid=
"1033"
template=
"STS"
uniqueperms=
"True"



       acecount=
"1"
doclibcount=
"2"
listcount=
"7"
maxwebpartperpage=
"4"
minwebpartperpage=
"0"
avgwebpartperpage=
"1">



    
<doclibs>



     



<doclib

Title=
"Documents_21232"



              Description=
"Documents_21232"



              url=
"Documents_21232"
itemcount=
"173"
/
>



      
<doclib
Title=
"Shared
Documents"




              Description=
"Share
a document with the team by adding it to this document library."




              url=
"Shared
Documents"

itemcount=
"6"
/
>


    
</doclibs>



   



<lists>



     



<list

Title=
"Announcements"



            Description=
"Use
the Announcements list to post messages on the home page of your
site."




            url=
"/bigsites/asite/asite_d1_w1/asite_d2_w1/asite_d3_w1/asite_d4_w1/asite_d5_w1/Lists/Announcements/AllItems.aspx"

            itemcount=
"1"
/
>
      <list
Title=
"Contacts"

            Description=
"Use
the Contacts list for information about people that your team
works with."

            url="/bigsites/asite/asite_d1_w1/asite_d2_w1/asite_d3_w1/asite_d4_w1/asite_d5_w1/Lists/Contacts/AllItems.aspx"

            itemcount=
"0"
/
>



    
</lists>






… // Some content removed for brevity.





 

Of course, you would probability not want to look
at the data in raw form most of the time.  I've been using Excel's XML
viewing/sorting capabilities to group and sort and filter on this data. 
I'll have a follow up post on it at a later date.

Warnings are then written when it detects
occurrences of data beyond the recommended

capacity planning guidelines
such as the following:



<warnings>


 



<warning

url=
"http://www.tailspintoys.com/bigsites/asite/asite_d1_w1/asite_d2_w1/asite_d3_w1/asite_d4_w1"


    description=
"This
web contains the List at
      /bigsites/asite/asite_d1_w1/asite_d2_w1/asite_d3_w1/asite_d4_w1/Lists/List_38285/AllItems.aspx

      that has a total number of 3394 items.
      Greater performance can
be achieved by reducing the number of individual items below
2,000."

//
>



 



<warning
url="http://www.tailspintoys.com/bigsites/asite/asite_d1_w1/asite_d2_w1/asite_d3_w1/asite_d4_w1/asite_d5_w1/asite_d6_w1"


   
description=
"This
web contains the List att
      that has a total number of 8852 items.
      Greater performance can
be achieved by reducing the number of individual items below
2,000."

//
>



</warnings>

Attached to this post is a sample Site
Distribution Report generated from the latest build.  The SPSiteManager
documentation will contain a complete description of the element data found in
this sample.

Looking forward to your feedback and comments
when this finally gets out the door!!

Keith Richie

 

sdd.xml

Comments (6)

  1. Keith Richie says:

    I sent the 2.5 package of the SharePoint Utility Suite off for update on the SharePoint Products and…

  2. During my trek through Windows SharePoint Services I frequently hear about this error message.  I like…

  3. Keith Richie says:

    &amp;nbsp;MOSS 2007 Upgrades and The SharePoint Configuration Analyzer V.Next

    With the Beta 2 release of…

  4. Keith Richie says:

    If I don’t harp on it enough 🙂 I knew I had seen the official KB on this subject long ago, and finally

Skip to main content