It’s no secret that SharePoint is an extremely popular product because it offers really useful features for organizations that are trying to share documents and enhance collaboration. But, as you probably know, SharePoint content is by nature very document-centric because it is the place where people store a lot of their documents.
The problem is that all these documents (called BLOBs in SharePoint lingo) are stored inside the SQL Server database. And, SQL Server (like all relational databases) wasn’t designed to store BLOBs. It was designed to store structured relational data.
Additionally, the number of documents can grow rapidly over time and especially for medium to large size organizations. SharePoint content database size can easily grow into 100’s of GB and even into TB range.
Due to these reasons, SQL Server very quickly gets overwhelmed by so much BLOB data. This makes database management very difficult and also slows down SharePoint.
So to address these issues, the best thing to do is for you to externalize all the BLOBs, meaning move them out of the database and into an external storage. This will reduce your database size by almost 95% because all the documents are moved out and you’re only left with meta-data, list data, and other similar data.
You can externalize BLOBs to file system, NAS, SAN, or Cloud Storage but most people end up choosing either file system or NAS/SAN storage. For externalizing BLOBs, you have the following options in SharePoint:
- EBS (SharePoint 2007 & 2010): EBS is used for storing BLOBs outside of SQL Server. But, you need a third-party EBS provider since no built-in provider comes with SharePoint. StorageEdge includes an EBS provider that you can use.
- RBS (SharePoint 2010): RBS can only be used with SharePoint 2010 and SQL Server 2008 R2. And unlike EBS, SharePoint 2010 comes with a built-in RBS provider for file stream. But I would strongly recommend using a third-party provider like StorageEdge. StorageEdge goes well beyond what built-in RBS does and takes care of the whole life-cycle of BLOB externalization.
So, once you’ve decided to externalize your BLOBs, you need to decide whether to use EBS or RBS. I recommend using EBS with StorageEdge as your third-party provider. EBS is better because it is much simpler to use than RBS. RBS has to be installed as part of SQL Server 2008 R2 and the process is therefore more complex.
Please note that StorageEdge supports both EBS and RBS so if your heart is set on RBS, you can still use StorageEdge. I am just giving you my personal opinion about which path is better.
With StorageEdge, you can schedule a timed-job in SharePoint to initiate the migration of BLOBs out of your SQL Server. Secondly, once EBS or RBS is in-place, any documents that are created or modified by users at runtime are now stored automatically in an external storage rather than SQL Server. Here is how SharePoint looks with externalized BLOBs.
So, if you have a SharePoint with large amounts of BLOB data, take a look at StorageEdge. Below are some useful links for it.