Applies to: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Topic Last Modified: 2008-07-14

In Microsoft Exchange Server 2007, the maximum size of the Extensible Storage Engine (ESE) database cache is not set by default. As a result, the amount of physical memory that is used by the Exchange store can be much greater than in previous versions of Exchange. The increased size of the database cache, which significantly improves performance, is made possible by the 64-bit architecture in Exchange 2007.

This topic explains the differences between database caches in Exchange Server 2003 and Exchange 2007. Also, although it is not recommended, you can use the procedure later in this topic to set the maximum size of the ESE database cache.

Database Cache Size in Exchange 2003

Exchange 2003 runs on a 32-bit operating system, which limits the maximum size of the virtual address space to 4 gigabytes (GB). The operating system leaves only 2 GB of addressable RAM for a single application such as Exchange (or 3 GB when the /3GB switch is set in the Exchange boot.ini file). With such a limited amount of addressable RAM available, the size of the database cache must be carefully managed to allow Exchange to perform at its highest level. 

Database Cache Size in Exchange 2007

A large database cache greatly increases performance because disk input/output (I/O) is reduced and the ability to read information from memory is much faster than having to read information from a disk.

With the 64-bit architecture in Exchange 2007, the maximum size of the database cache is no longer constrained by limits on the virtual address space. Instead, it is determined by the amount of available memory and by database I/O. For example, on a server that has 16 GB of physical RAM, ESE may increase the database cache to 8 GB if this amount is sufficient to meet its memory needs, and leave the remaining memory for system cache and other applications that are running on the server. 

Because the maximum size of the database cache is not set by default, ESE can increase the size of the database cache to consume almost all available RAM on the server if there is enough database I/O pressure to justify the increase. If other applications or the Windows Server system cache request or require memory, ESE decreases the size of the database cache as required. ESE does not increase the size of the cache unless there is enough database I/O pressure to justify the growth. The default minimum database cache size for Exchange 2007 is 512 megabytes (MB) on servers that have at least 2 GB of RAM.

Setting the Maximum Size of the Database Cache

You can use Active Directory Service Interfaces (ADSI) Edit to set the maximum size of the database cache.

We do not recommend setting a maximum size for the database cache. The maximum database cache size should not be lower than the minimum recommended amount of physical RAM. If you must reduce the maximum database cache to below the recommended levels, you should simultaneously reduce the number of storage groups on the server. For more information, see "Recommended Maximum Memory Configuration for Mailbox Servers" in Planning Memory Configurations.
The msExchESEParamCacheSizeMax parameter specifies the size of the database cache in 8-kilobyte pages.
To set the maximum size of the database cache in Exchange 2007
  1. Start ADSI Edit. (Click Start, click Run, and then type adsiedit.msc.)

  2. In ADSI Edit, from the Action menu, click Connect to.

  3. In Connection Settings, under Connection Point, click Select a well known Naming Context, and then select Configuration from the corresponding list.

  4. Under Computer, click Select or type a domain or server, and then in the corresponding box, select or type the name of your domain controller.

  5. Click Advanced.

  6. In Advanced, select Specify Credentials, and then type your user name and password in the corresponding boxes.

  7. In the Port Number box, type 389.

  8. Under Protocol, click LDAP.

  9. Click OK to close the Advanced dialog box.

  10. Click OK to close the Connection Settings dialog box.

  11. In ADSI Edit, you are connected to the Configuration container of your domain controller.

  12. Navigate to the following object: Configuration/Services/Microsoft Exchange/<Your Organization>/Administrative Groups/<Your Administrative Group>/Servers/<Server Name>/Information Store.

  13. Right-click Information Store, and then click Properties.

  14. On the Attribute Editor tab, click msExchESEParamCacheSizeMax, and then click Edit.

  15. In Integer Attribute Editor, type the maximum size of the database cache, specified as the number of 8-kilobyte pages, and then click OK.

    For example, to set the database cache size to 14 GB, divide 14 GB (14,680,064 KB) by 8 to get a value of 1,835,008 8-KB pages. In the Integer Attribute Editor dialog box, type this value without using commas or periods.

  16. Click OK to close Information Store Properties.

  17. Close ADSI Edit, and then restart the Microsoft Exchange Information Store service.

For More Information

For more information about the ESE database cache in Exchange 2007, see the following topics: