KB3138659 - 修复:从 Oracle 数据库查询数值数据类型时性能降低

应用对象
SQL Server 2012 Service Pack 3 SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症状

请考虑以下情形:

  • 在 SQL Server 2012 或 SQL Server 2014 中将链接服务器配置为作为远程源访问 Oracle 数据库Microsoft,并为该链接服务器使用“Oracle.OleDB”OleDB 提供程序。
  • 您使用引用 Oracle 表的远程查询,并且该表包含一个或多个具有 Oracle 专有 NUMBER 类型的列。 此表中也包含大量行。

与旧版 Microsoft“MSDAORA”OleDB 提供程序相比,在这种情况下,可能会遇到性能问题。 出现此问题的原因是“Oracle.OleDB”提供程序向 SQL Server 报告 NUMBER 数据类型的方式。

解决方法

若要解决此问题,请应用此更新,然后启用跟踪标志 TF9394。 若要启用跟踪标志 TF9394,请参阅“更多信息”部分。

累积更新信息

此问题已在以下更新中修复:

          

建议:安装 SQL Server 的最新累积更新

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

      

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

详细信息

如何启用跟踪标志 9394

可以在启动时或在用户会话中启用跟踪标志 9394。 此跟踪标志具有全局级别或会话级别效果。 若要启用跟踪标志 9394,请使用 DBCC TRACEON 命令或使用 –T 9394 作为启动参数。

如果使用 DBCC TRACEON\TRACEOFF,则不会为存储过程重新生成新的缓存计划。 缓存中可能存在在没有跟踪标志的情况下创建的计划。

有关如何启用或禁用跟踪标志以及全局和会话级跟踪标志的详细信息,请参阅 SQL Server 联机图书中的以下主题:

      

参考资料

了解 Microsoft 用于描述软件更新的术语。

第三方信息免责声明

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。