In visiting with customers, a common misconception that I have encountered is with the understanding of how Single Instance Store (SIS) works in Exchange 2007. Unlike Exchange 2003, SIS is only used to reduce the size of the database when an attachment is sent to two or more users that share the same database. To illustrate this, I have setup my lab to send large attachments to several users, exported the attachments to a PST file, and then imported the attachments back into the database.
Note: As you may already be aware, single instance storage has been removed from Exchange 2010 all together because of how the database has been designed.
1 – All Roles Exchange 2007 SP2
1 – 2008 domain controller
15 files ranging from File1.txt – file15.txt
Each file is 7.52MB
Test users – asmith, bmith, and mboring
There is no mail content in the user’s mailbox before the test.
The sender mboring is on a different mailbox server than asmith and bsmith.
The database only contains the test user accounts and the size of the database before any mail is sent is:
- Sent files 1 – 5 to both asmith and bsmith
- Sent files 6 – 10 just to asmtih
- Sent files 11-15 just to bsmith
- Current size of the database
- Export all the mailbox out of both asmtih and bsmith
- Size of PST file on disk
- Let Online maintenance run
- Current database size
- Ran eseutil /d against the database
- Current database size
- Imported the content from the PST files for both asmith and bsmith back into the database
- The database size is now
As you can tell the database was a 124MB before exporting and importing the data from the PST files. Once the data was imported back in, the size of the database grew to 163 MB. This is because the pointers in the database were broken when the data was exported. When an attachment is sent to two or more mailboxes in the same database, only one copy of the file is stored within the database. A pointer is used to link the mailboxes to the file thus reducing the overall size of the database. Once the data is exported the link is broken and when the data is imported back into the database a new reference is created for the attachment.
As this illustration shows, the two mailboxes share the same file on disk, thus reducing the overall size of the database.
On the link is broken the size of the database will double because each mailbox will store an instance of the same file.