How much storage space is my site collection using?

NOTE: This post is just covering SharePoint 2010, and not earlier versions of the product.

imageA common question administrators have in their SharePoint environment is “How much storage space is my site collection using?”

Well, fear not, trusty SharePoint administrators! There are a few ways to skin this cat – and we’re going to take a look at them.

 

SharePoint Designer

SharePoint Designer – what was once something administrators and power users shuddered at the mere mention of the tool in prior versions of the product, has gotten a makeover. And, also has a lot of additional functionality. For today’s lesson however, we are only going to look at one specific feature of it – the ability to view the storage used for an entire site collection!

If you open up SharePoint Designer to the root site of your site collection, in the main window, once the site is opened under Site Information, you will see, as highlighted below, that it will conveniently display the Total Storage Used of your entire site collection! There! As the big red button on my desk often says after a good firm press… “That was easy!”.

image

Let’s look at a couple of other methods of getting this information, shall we?

StorMan.aspx – SharePoint 2010 Service Pack 1+

This one requires Service Pack 1 to be installed to be able to utilize this feature. It was not in the RTM version. At the root of your site collection, if you go to Site Actions > Site Settings > Site Collection Administration > Storage Metrics, this will give you details on the usage – such as what sites, lists, libraries, and items are taking up the most space, however, it will not give you a total like our trusty SharePoint Swiss Army Knife – SharePoint Designer does, but, it will allow you to drill down into the usage.

image

I will also urge you to view Bill Baer’s article on Storage Metrics in Service Pack 1 – which has some great screenshots of the functionality, as well as an overview, available here: http://blogs.technet.com/b/wbaer/archive/2011/06/28/service-pack-1-storage-metrics-storman-aspx.aspx

PowerShell

imagePowerShell, one of the other power tools in SharePoint 2010, much more akin to the Ginsu knife, can also serve up the details, and, like the Ginsu knife, allow you to slice and dice the information in a myriad of ways.

Below is an example script to connect to your site collection, and read out all of the usage information.

$site = Get-SPSite http://my.sitecollection.com
$site.Usage;
$site.Dispose();

Which gives the following output (storage shown highlighted below in bytes):

image

To view just the Storage property, and not Bandwidth, Visits, Hits, and DiscussionStorage, you can call this:

$site = Get-SPSite http://my.sitecollection.com
$site.Usage.Storage;
$site.Dispose();

And only the Storage property with the total bytes will be displayed. You can also do some other cool tricks, such as calculating kilobytes, megabytes, gigabytes and terabytes right from the command line as well, to make the results a bit more readable:

image

Want more? OK! We can give it to you! Keep reading! (Because, reading is fundamental, you know.)

Web Analytics

Another option to view the storage used, as well as some additional metrics around it, if you have Web Analytics enabled, you can view your usage over time. To see this, go to Site Actions > Site Settings > Site Actions > Site Collection Web Analytics reports

image

Once there, in the main screen, you can view a summary of the Total Storage Used under Inventory.

image

And if you click on Storage Usage under Inventory within the quick launch navigation on the left, you can then view reports on storage utilization for your site collection, with a graph of the values so you cane easily visualize the trend in storage usage.

image

image

As well as a daily breakdown of the storage used, so you can see how this grows or falls over time.

image

You can also run reports for any date range since Web Analytics have been enabled, as well as run workflows against this data for alerting and reporting.

image

I hope you were able to learn something new today… have another method in which you get your site collection storage metrics? Leave it in the comments below for everyone else!

Slides and Resources from SharePoint Saturday New Hampshire

SharePoint Saturday New Hampshire was a great event! A job well done by the organizers. This was the first SharePoint Saturday New Hampshire, and there seemed to be a great turnout, and the location worked out well. Saw a lot of familiar faces, as well as was able to meet a bunch of great new people. This was also my first official event as a Jornata employee, even though today is officially my first day 🙂

This next part of this post is special for those who attended my session, it’s out little inside joke.

My session was very well attended, and I got nothing but great remarks.

Thank you all again for attending, and for the standing ovation – really, you didn’t have to. But thank you none-the-less. Below you will find my slides from the event.

And if you missed my session, or just want to see it again, come see me in a couple weeks at the Granite State SharePoint Users Group, where I will be presenting the same session, on October 13th.

And if you’re in the Baltimore area, I will be presenting this at the Baltimore SharePoint Users Group on October 20th.

Without further ado – here is my slide deck from the event.

In the slide deck is also the updated URL for access to the demonstration environment (http://go.gvaro.net/ExtranetsVM3).

TEST OUT YOUR POWERSHELL SCRIPTS FIRST IN A NON-PRODUCTION ENVIRONMENT FIRST

You may be wondering why I applied such bad grammar to the title of this post, it came from a comment on this: https://www.nothingbutsharepoint.com/sites/itpro/Pages/Seven-Virtues-for-the-SharePoint-IT-Pro.aspx

PowerShell is a beast. Sure, it’s hard to learn the syntax, and there are 600+ commands that come along with SharePoint 2010. But, it also gives you direct access to the API for SharePoint. Never, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, ever, under any circumstances what-so-ever, run un-tested PowerShell code in a production environment. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever. ever.

What may have worked for one person, in which they have posted it on their blog, mailing list, or company-wide fax – it should be tested first, in a non-production environment.

It may work fine, sure, but, it may also grind everything to a halt, and end your career.

In closing, re-read the above, and make it your mantra. No go fourth, SharePoint admins (and devs – yes you too), and prosper.

Microsoft.BusinessData.Runtime.ExceededLimitException: Database Connector has throttled the response.

If you’ve created a BCS list before (such as defined by the excellent tutorial put together by Laura Rogers for connecting to a SQL data source using a SQL account – http://www.sharepoint911.com/blogs/laura/Lists/Posts/Post.aspx?ID=90), and received this error on your Read List view page:

Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator.

Correlation ID:117e242f-0985-42e9-9972-b1a879ce7e3b

After investigating the ULS Logs, located in %SYSTEM DIR%\Program Files\Common Files\Microsoft Shared\web server extensions\14\LOGS, and searching for the correlation id mentioned above. You may find the following error:

Error while executing web part: Microsoft.BusinessData.Runtime.ExceededLimitException: Database Connector has throttled the response. The response from database contains more than ‘2000’ rows. The maximum number of rows that can be read through Database Connector is ‘2000’. The limit can be changed via the ‘Set-SPBusinessDataCatalogThrottleConfig’ cmdlet.     at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.ThrottledIDataReader.Read()     at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbEntityInstanceEnumerator.MoveNext()     at Microsoft.SharePoint.BusinessData.Runtime.EntityInstanceEnumeratorBase.MoveNext()     at Microsoft.SharePoint.SPListDataSource.GetFilteredEntityInstancesInternal(XmlDocument xdQueryView, Boolean fFormatDates, Boolean fUTCToLocal, String firstRowId, Bo…

Thanks to the wonders of the interwebs, the solution to this is fairly simple, and the error explanation is extremely helpful. Do a search for this: Set-SPBusinessDataCatalogThrottleConfig, which will lead you to a great article on the Microsoft Business Connectivity Services Team Blog by Adam Outcalt here: http://blogs.msdn.com/b/bcs/archive/2010/02/16/bcs-powershell-introduction-and-throttle-management.aspx which will give you very great instructions on modifying the BCS throttling configuration.

Be careful with this however, the throttling is there for a reason. Not just to give you another option to configure.

SharePoint & PowerShell 101: Finding Cmdlets

imageI recently did a post on Listing all available PowerShell commands in SharePoint 2010. That is all well and good, if you want to manually browse through all of them. But what if you want to search for them?

 

Get-Command

Get-Command is a highly useful cmdlet in PowerShell. Today we are just going to use a basic functionality of it, to help us find and locate the cmdlets we need to use. Today, we need to do some work with the User Profile Service. However, we don’t know what the command names are that we need to use, only that we need to use them. For that, we can use Get-Command. If you need to figure out how to use the Get-Command cmdlet, run

Get-Help Get-Command

Which will return the following information about the cmdlet

image

This will return the usage of the Get-Command cmdlet. We are just going to use the –Noun switch to pass in our parameters.

Let’s start looking at the basics… we’re looking to find commands relating to the User Profile Service. So, let’s try searching for a noun of Profile

Get-Command –Noun Profile

Nothing is returned… oh right, it would appear that the Get-Command is literal, not a wildcard. However, we can use a wildcard character to help us search, as we have no idea what the name of the command is. Let’s try searching for *Profile*, that should do the trick.

Get-Command –Noun *Profile*

image

Hooray, results! However, we cannot see the entire name of the results returned. For that, we can use the Select-Object cmdlet.

Fore information on using that, try this in the PowerShell console

Get-Help Select-Object

So, let’s only pull the Name property in our results of the Get-Command

Get-Command -Noun *Profile* | Select-Object –Property Name

image

Much better! We can further refine these by adjusting our Noun, to just look at ProfileService

Get-Command -Noun *ProfileService* | Select-Object -Property Name

image

And there we go! Hopefully this helps you in your quest to add PowerShell to your arsenal of SharePoint management and development tools.

I’d love to hear what else you would like to learn about – leave me information in the comments!

%d bloggers like this: