某些模块加载到 SQL Server 时的性能和一致性问题的地址空间

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

点击这里察看该文章的英文版: 2033238
症状
当某些模块加载到 Microsoft SQL Server 进程地址空间 (Sqlservr.exe) 时,您可能会遇到以下症状:
  • 各种挂起相关的错误消息和条件 (例如,SQL Server 计划程序消息如 17883,应用程序超时消息,严重阻塞 SQL Server 内) 的报告
  • 即使在负载的并发量不是很繁重的 SQL Server 响应速度很慢
  • 例外日期 (例如访问 violationa)、 有关数据库的一致性的严重错误消息、 肯定消息或进程意外的终止
原因
由于应用程序或运行 SQL Server 的服务器安装其他软件可以将某些模块加载到 SQL Server 进程 (Sqlservr.exe),就会出现这些问题。这也许可以实现特定的业务逻辑要求、 增强的功能,或监视入侵。这些模块可能会执行不受支持的活动,包括 detouring 重要的 Win32 Api 和 SQL Server 例程,并调用 Api 的危险。此外,一些固有的问题,在这些模块中可能导致各种所需的 SQL Server 过程能够正常工作的内存结构的损坏。
替代方法
警告 此替代方法可能会使计算机或网络更易于受到恶意用户或恶意软件 (如病毒) 的攻击。我们不建议采用这种解决方法,但我们会提供此信息,以便您可以自己决定是否实施此替代方法。使用此方法,需要您自担风险。

若要变通解决此问题,请执行以下步骤:
  1. 确定要加载到 SQL Server 进程的模块和程序导致了此问题。
  2. 针对问题的模块执行下列操作:
    1. 配置应用程序未加载到 SQL Server 进程的特定模块。
    2. 请与供应商模块或应用程序检查更新。应用任何可用的更新。
    3. 在某些罕见情况下,您可能必须删除模块,其相关的软件来还原 SQL Server 进程和系统的稳定性。
    注意 在某些情况下,您可能需要执行所有这些操作。
更多信息
Microsoft 客户支持和服务 (CSS) 小组确定了以下模块可能会导致"症状"部分所述的症状。发现新的问题时,将更新此列表。提供了此列表,以帮助您识别"解决方案"一节中提到的过程。此过程通常涉及问题的持续时间设置的迭代的诊断和跟踪数据的集合。

以下模块时被加载到 SQL Server 进程可能导致性能和稳定性问题:
  • ENTAPI。DLL
    ENTAPI。DLL 被加载到 SQL Server 的过程,如果您正在运行 Microsoft SQL Server,在服务器上安装 McAfee VirusScan 企业,然后您配置此软件以监视 SQL Server。本模块加载时,重要的 Win 32 Api 都还 detoured 在 SQL Server 进程内。如果您注意到本模块加载到 SQL Server 进程,配置 McAfee VirusScan 企业可以排除各种高级监视,如缓冲区溢出保护 SQL Server (Sqlservr.exe)。
  • HIPI。DLL 中,HcSQL.dll,HcApi.dll HcThe.dll
    这些 DLL 文件加载到 SQL Server 进程中,如果与 SQL Server 相同的系统上安装 McAfee 主机入侵防护软件。如果您注意到本模块加载到 SQL Server 进程,配置 McAfee 主机入侵防护,可以将 SQL Server (Sqlservr.exe) 排除其监视的列表。
  • SOPHOS_DETOURED。DLL 和 SOPHOS_DETOURED_x64。DLL 文件, SWI_IFSLSP_64.dll
    这些 DLL 文件都加载到 SQL Server 进程正在运行 SQL Server 的服务器上安装了 Sophos 的防病毒程序。如果您注意到本模块加载到 SQL Server 进程中,您可以 配置 AppInit_Dlls 若要避免将本模块加载到 SQL Server 进程的注册表子项。
  • PIOLEDB。DLL 和 PISDK。DLL
    如果您使用 PI OLEDB 提供程序来访问 PI 服务器中的数据,或使用扩展存储的过程中使用 PI SDK 程序这些 DLL 文件加载到 SQL Server 进程。如果您注意到这些模块被加载到 SQL Server 进程,与这些模块供应商联系,以将 OLEDB 提供程序配置为进程外的提供程序。此配置可以帮助避免将这些模块加载到 SQL Server 进程的需要。
有关如何为 Sqlservr.exe 中的应用程序软件,本文中所讨论的设置排除策略的详细信息,请参阅产品手册或与软件供应商联系。

下表提供了有关产品或自动检查此条件,在您的 SQL Server 的实例和 SQL Server 对规则进行评估所依据的版本的工具的详细信息。

规则软件规则标题规则说明对规则进行评估所依据的产品版本
系统中心顾问在可能会导致服务器稳定性问题的 SQL Server 中加载的模块系统中心审查确定是否将本文中提及的 Dll 列表加载到 SQL Server 进程。检查顾问警报"收集的信息"一节中提供的信息,然后使文章讨论了所需的配置更改。SQL Server 2008
SQL Server 2008 R2
SQL Server 2012
SQL Server 2008 R2 最佳实践分析器 (SQL Server 2008 R2 BPA)被截获的 Windows API 调用SQL Server 2008 R2 最佳实践分析工具 (SQL Server 2008 R2 BPA) 提供了一条规则来检测模块支持缓冲区溢出保护 SQL Server 内加载的。如果运行 BPA 工具时,并且您会收到一条警告消息,标题为"引擎-Windows API 调用被截获,"在 SQL Server 内部加载的模块,以支持缓冲区溢出保护。BPA 检测到此通过查找具有类似于"%entapi.dll%"作为 sys.dm_os_loaded_modules 动态管理视图 (DMV) 中找到的名称的所有模块。SQL Server 2008
SQL Server 2008 R2
SQL Server 2012
SQL Server 2012年最佳实践分析工具 (SQL Server 2012 BPA)被截获的 Windows API 调用SQL Server 2012 BPA 提供了一条规则来确定是否将本文中提及的 Dll 列表加载到 SQL Server 进程。如果您运行 BPA 工具,并且您会收到一个警告消息,标题为"引擎-Windows API 调用截获"、 检查 BPA 的"问题"语句中提供的信息并进行讨论所需的配置更改文章中。SQL Server 2012

本文讨论的第三方产品是由与 Microsoft 无关的公司生产的。Microsoft 不担保也不暗示或对这些产品的性能或可靠性做任何表态。

本文档中的解决方案和信息表示当前视图的微软公司对这些问题之日发布。此解决方案是通过 Microsoft 或第三方提供程序可用。Microsoft 不专门建议任何第三方提供商或第三方解决方案,这样描述这篇文章。可能还存在其他第三方提供商或第三方解决方案,这篇文章未提及。Microsoft 必须响应不断变化的市场条件,因为此信息应被解释为承诺由 Microsoft。Microsoft 不能保证或认可或任何由 Microsoft 或任何提到的第三方提供商提供的任何的解决方案信息的准确性。

Microsoft 不作任何担保,并不包括所有陈述、 担保和条件,无论是明示、 暗示或法定。其中包括但不限于的表述、 担保或条件的标题、 非侵权性、 令人满意的条件、 适销性和针对特定用途,在任何服务、 解决方案、 产品或任何其他资料或信息方面的适用性。在任何 Microsoft 都不为本文提及的任何第三方解决方案。
参考
有关 SQL Server 支持策略的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章:

有关 SQL Server 进程的详细信息,请单击下面的文章编号,以转到 Microsoft 知识库中相应的文章:

198891 如何运行 SQL Server 进程之外的基于 DLL 的 COM 对象
243428 如何移动扩展进程外的存储的过程

警告:本文已自动翻译

属性

文章 ID:2033238 - 上次审阅时间:02/08/2014 06:08:00 - 修订版本: 4.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Express Edition with Advanced Services, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL 2005 Server Workgroup, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2012 Analysis Services, Microsoft SQL Server 2012 Business Intelligence, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Parallel Data Warehouse, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, SQL Server 2012 Enterprise Core

  • kbmt KB2033238 KbMtzh
反馈