你目前正处于脱机状态,正在等待 Internet 重新连接

XADM:访问信息存储文件夹的速度可能会变慢

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,查看 Microsoft 知识库文章:
256986 Description of the Microsoft Windows Registry
症状
在尝试打开私人或公用信息存储中的一个或多个文件夹时,这个过程可能变得非常慢或者没有响应。这种情况体现在以下几个方面:
  • 如果访问文件夹中的邮件(例如,如果将邮件的状态从已读改为未读、打开邮件或者删除邮件),客户端的响应速度非常慢。
  • 收到包含短语“Client Operation Failed”的邮件应用程序编程接口 (MAPI) 错误信息。
  • Mdbdata 文件夹中的日志文件以稳定的速度增长,您几乎感觉不到任何变化,如果有任何变化的话,也是公用文件夹资源或邮箱资源的变化。
  • 如果创建一个新文件夹并将旧文件夹中的内容和问题都移到新文件夹中,这样可以使问题在几天之内不会发生,但是以后问题将会再次出现。
  • 如果访问特定的文件夹,响应速度很慢或者出现问题,但是同一数据库中的其他文件夹响应速度很正常。这包括诸如网关文件夹这样的特殊文件夹(例如,Mts-in 和 Mts-out 文件夹)。
原因
单个文件夹中放置了太多的缓存限制、反向链接和搜索。

要确定是否遇到本文所讨论的问题,请执行以下某一测试:

重要说明:在执行测试 1 之前,请确保具有信息存储的完整联机备份,因为测试 1 将重置服务器上的文件夹视图。

测试 1

  1. 为公用或私人信息存储添加 Reset Views 注册表值。

    警告:“注册表编辑器”使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不保证能够解决因为“注册表编辑器”使用不当而产生的问题。使用“注册表编辑器”需要您自担风险。

    要添加该值,请执行以下步骤之一(如果适用):
    • 公用信息存储:要修改注册表项以更改公用信息存储的 Reset Views 值,请执行下列步骤:
      1. 启动注册表编辑器 (Regedt32.exe)。
      2. 在注册表中找到下面的项:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersPublic
      3. 添加一个 REG_DWORD 类型的 Reset Views 值。
      4. 在无此注册表项的情况下,Reset Views 的默认值为 0。请将该值设置为 1。
      5. 退出“注册表编辑器”。
    • 私人信息存储:要修改注册表项以更改私人信息存储的 Reset Views 值,请执行下列步骤:
      1. 启动注册表编辑器 (Regedt32.exe)。
      2. 在注册表中找到下面的项:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersPrivate
      3. 添加一个 REG_DWORD 类型的 Reset Views 值。
      4. 在无此注册表项的情况下,Reset Views 的默认值为 0。请将该值设置为 1。
      5. 退出“注册表编辑器”。
  2. 停止信息存储服务,然后重新启动它。
如果该值存在并设置为非零值,则信息存储在下一次清除间隔时(在信息存储维护期间)将删除所有缓存限制,并将该值重置为零。您可以检查该注册表项的值是否已重置为零,确定是否发生过这种情况。删除缓存限制后,如果文件夹的性能大大提高,说明您遇到了本文所讨论的问题。

测试 2

  1. 停止信息存储。
  2. 在命令提示符处,转到 Exchsrvr\Bin 文件夹并运行以下命令:
    isinteg -pri|pub -dump -l logfilename
    警告:此命令将所有文件夹的详细信息转储到指定的数据库。根据数据库大小的不同,产生的日志文件可能非常大。
  3. 检查日志文件,在以下字段中查找具有大量条目的所有文件夹:
    Search FIDs=
    Recursive FIDs=
    Search Backlinks=
    Categ FIDs=
    例如:
    Search FIDs=0001-000000000418,0001-00000000041B,0001-000000000421, 0001-000000000423,0001-000000000424,0001-000000000428,0001-00000000042D
    如果该字段包含几百个条目,说明您遇到了本文所讨论的问题。
替代方法
要解决此问题,请将受影响的数据库(公用或私人信息存储)的“Aging Keep Time”值从默认的 8 天减少到 1 天。

Aging Keep Time

要减小该值,请执行以下步骤之一(如果适用):
  • 公用信息存储:要修改注册表项以更改公用信息存储的 Aging Keep Time 值:
    1. 启动注册表编辑器 (Regedt32.exe)。
    2. 在注册表中找到下面的项:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersPublic
    3. 添加一个 REG_DWORD 类型的 Aging Keep Time 值。
    4. 在没有此注册表项的情况下,“Aging Keep Time”的默认值是 8 天。Exchange Server 4.0 和 5.0 以毫秒为单位存储该值(8 天等于 691,200,000 毫秒:1000*60*60*24*8 = 691,200,000),Exchange Server 5.5 以秒为单位存储该值(8 天等于 691,200 秒:60*60*24*8 = 691,200)。要将新的“Aging Keep Time”值设置为 1 天,请将该值设置为 86,400,000(对于 Exchange Server 4.0 和 5.0)或设置为 86,400(对于 Exchange Server 5.5)。如果需要一个更低的值,请一定记住 Exchange Server 4.0 和 5.0 使用的是毫秒,而 Exchange Server 5.5 使用的是秒。

      备注:该值是按十进制输入的。
    5. 退出“注册表编辑器”。
  • 私人信息存储:要修改注册表项以更改私人信息存储的 Aging Keep Time 值:
    1. 启动注册表编辑器 (Regedt32.exe)。
    2. 在注册表中找到下面的项:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersPrivate
    3. 添加一个 REG_DWORD 类型的 Aging Keep Time 值。
    4. 在没有此注册表项的情况下,“Aging Keep Time”的默认值是 8 天。Exchange Server 4.0 和 5.0 以毫秒为单位存储该值(8 天等于 691,200,000 毫秒:1000*60*60*24*8 = 691,200,000),Exchange Server 5.5 以秒为单位存储该值(8 天等于 691,200 秒:60*60*24*8 = 691,200)。要将新的“Aging Keep Time”值设置为 1 天,请将该值设置为 86,400,000(对于 Exchange Server 4.0 和 5.0)或设置为 86,400(对于 Exchange Server 5.5)。如果需要一个更低的值,请一定记住 Exchange Server 4.0 和 5.0 使用的是毫秒,而 Exchange Server 5.5 使用的是秒。

      备注:该值是按十进制输入的。
    5. 退出“注册表编辑器”。
    6. 停止信息存储服务,然后重新启动它。
如果该值仍然不够小,请减小该值,直到达到可以接受的性能水平。但是,也需要减小“Aging Clean Interval”的默认值 1 天,如本文的“Aging Clean Interval”部分概述的那样。

Aging Clean Interval

Aging Clean Interval 值是信息存储检查任何必须从高速缓存中删除的内容的时间间隔(对于 Exchange Server 4.0、5.0 和 5.5,单位为秒)。默认值为 24 小时(或 86,400 秒)。要减小信息存储的 Aging Clean Interval 值,请修改注册表,减小 Aging Clean Interval 值:
  1. 启动注册表编辑器 (Regedt32.exe)。
  2. 在注册表中找到下面的项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
  3. 添加一个 REG_DWORD 类型的 Aging Clean Interval 值。
  4. 在没有此注册表项的情况下,Aging Clean Interval 的默认值设置为 86,400(即 1 天内的秒数 60*60*24)。将 Aging Clean Interval 值设置为一个小于 86,400 的数。

    备注:该值为十进制。
  5. 退出“注册表编辑器”。
  6. 停止信息存储服务,然后重新启动它。

运行 Isinteg

可以运行 Isinteg 实用程序来立即强制清除缓存限制。将发生下列情况:
  • 反向链接被清除。
  • 限制表被删除。
如果对某个文件夹有大量的限制,并且您运行 isinteg -fix 命令,这些缓存搜索将全部清除,而且文件夹功能恢复正常。
isinteg -fix -pri -test morefld
Microsoft Exchange Information Store Integrity Checker v5.5.265
版权所有 (C) 1986-1997 Microsoft Corp. 保留所有权利。
开始时间: 04/28/00 19:06:08
服务器名称:Server.domain.com
存储路径:D:\exchsrvr\MDBDATA\PRIV.EDB
存储大小:1510031360 字节
输出日志:isinteg.pri
检查模式:检查并修复
选项:-fix -pri -test morefld

正在开始测试 1(共 3 个)“分类表”
已完成分类表。Time:0h:0m:0s
正在开始测试 2(共 3 个)“限制表”
已完成限制表。Time:0h:0m:0s
正在开始测试 3(共 3 个)“搜索文件夹链接”
已搜索完文件夹链接。Time:0h:0m:23s
没有引用计数测试
更多信息
可以使用两种方法搜索带扩展 MAPI 的文件夹:Restrict() 方法和 FindRow() 方法。Restrict() 方法缓存该文件夹限制并且几天内不会删除。如果视图、筛选器或搜索使用的是一个不断变化的主索引,那么每次调用该文件夹时都会增加一个新的限制。这将导致服务器上文件夹性能的降低,因为每次应用某项更改时,都必须访问所有反向链接。

有关控制文件夹索引老化的其他信息,请单击下面的文章编号,查看 Microsoft 知识库文章:
159197 XADM:Controlling Folder Index Aging
协作数据对象 (CDO) 1.21 也能导致此问题。CDO MessageFilter 对象作为一个 MAPI 限制实现。如果可能,应该使用 FindRow 将依赖于 MessageFilter 的 CDO 代码替换为等效的扩展 MAPI 代码。但是有时候不能这样做。例如,搜索约会的 CDO 代码不能由扩展 MAPI 替代,因为扩展 MAPI 不理解约会项。这种情况下,应重新评估 CDO 代码,查看能否减少不同 MessageFilter 的数目。
poor slow outlook filter blackberry bes restrict
属性

文章 ID:216076 - 上次审阅时间:08/24/2005 16:21:00 - 修订版本: 3.1

Microsoft Exchange Server 4.0 标准版, Microsoft Exchange Server 5.0 标准版, Microsoft Exchange Server 5.5 标准版, Microsoft Exchange 2000 Enterprise Server, Microsoft Exchange 2000 Server 标准版, Microsoft Messaging Application Programming Interface, Microsoft Collaboration Data Objects 1.21

  • kbprb KB216076
反馈