增加的 CPU 使用率从 Windows 资源管理器访问 SQL Server 文件表已共享时

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3092936
症状
请考虑以下情形:
  • 已实现 SQL Server 文件表已.
  • FileTable 公开 SMB 共享。
  • 您可以通过使用映射的驱动器或 UNC 路径访问 SMB 共享通过 Windows 资源管理器 (explorer.exe)。
在这种情况下,您可能会发现增加的 CPU 使用率 explorer.exe 和 SQL Server 和系统流程。这种现象反映了增加 SMB 中目录更改通知通信量。
原因
SQL Server 文件表已共享不支持目录更改通知。因此,运行 SQL Server 的服务器响应这些请求的 STATUS_NOT_SUPPORTED 值。由于 explorer.exe 无法同步处理此响应值,它将继续尝试注册目录更改通知,在一个或多个 explorer.exe 窗口中打开文件表已 SMB 共享时。这些窗口关闭后,应停止更改通知行为。不支持目录更改通知的第三方文件服务器也可能会使这种行为。
解决方案
警告如果您使用注册表编辑器不当,可能会导致严重的问题,可能需要您重新安装操作系统。Microsoft 不能保证您可以解决导致注册表编辑器使用不当的问题。由您自己承担使用注册表编辑器所带来的风险。

若要避免此问题,请使用NoRemoteChangeNotify注册表值禁用 SMB 目录更改通知。这样做对任何要访问 FileTable 的系统共享通过 Windows 资源管理器。
  • 将设置应用于当前登录的用户,添加到以下注册表项的NoRemoteChangeNotify注册表项:

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
  • 将设置应用于登录到该计算机的所有用户,请将NoRemoteChangeNotify注册表项加入以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoRemoteChangeNotify注册表项的值设置为 1,则关闭文件和文件夹发生的更改的映射的网络共享文件夹中的远程更改通知请求。若要打开远程更改通知请求,设置为 0 (零) 的NoRemoteChangeNotify注册表项。
请确保您打开关闭更改通知请求只为用户当前已登录,按如下所述:
  1. 单击开始,单击运行,类型 注册表编辑器打开框中,然后再单击确定
  2. 找到并单击以下注册表项:

    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
  3. 编辑菜单上,指向新建,然后单击DWORD 值
  4. 键入 NoRemoteChangeNotify然后按 enter 键。
  5. 编辑菜单上,单击修改
  6. 数值数据框中,键入 1然后单击确定
  7. 退出注册表编辑器。
关闭所有用户的更改通知请求
  1. 单击开始,单击运行,类型 注册表编辑器打开框中,然后再单击确定
  2. 找到并单击以下注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
  3. 编辑菜单上,指向新建,然后单击DWORD 值
  4. 键入 NoRemoteChangeNotify然后按 enter 键。
  5. 编辑菜单上,单击修改
  6. 数值数据框中,键入 1然后单击确定
  7. 退出注册表编辑器。

属性

文章 ID:3092936 - 上次审阅时间:09/18/2015 04:56:00 - 修订版本: 1.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2016 Enterprise, Windows Vista Business, Windows 7 Enterprise, Windows 8 Enterprise, Windows 8.1 Enterprise, Windows Server 2008 R2 Enterprise, Windows Server 2012 Datacenter, Windows Server 2012 R2 Datacenter

  • kbexpertiseadvanced kbsurveynew kbtshoot kbmt KB3092936 KbMtzh
反馈