使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

请考虑以下情形:

  • 链接的服务器的本地服务器和远程服务器都具有 Microsoft SQL Server 2012年实例之间配置。

  • 通过使用一种排序规则,如不区分大小写的排序规则配置本地服务器。

  • 远程服务器已被配置在本地服务器上,如区分大小写的排序规则不同的排序规则中的对象。

  • 连接 Microsoft JDBC 驱动程序从 SQL Server 的 SQL Server,SQL OLE DB 提供程序或 SQL 本机客户端的 Microsoft ODBC 驱动程序到本地服务器。

  • 该驱动程序作为预准备语句调用sp_prepexec存储过程,在本地服务器上执行事务处理 SQL 更新查询。

  • 查询更新远程服务器上的表。这包括使用从本地服务器的排序规则不同的列对象。

在这种情况下,您可能会遇到查询的执行的性能较低。如果选中更新查询的执行计划,您可能会看到远程扫描在远程服务器中的表上执行不筛选。因此,查询可能会执行很多读时它扫描远程表,然后检索所有行返回到本地服务器。

例如,默认不区分大小写的排序规则的本地服务器上查询已准备好和远程服务器具有表T1 ,其中包含的列的区分大小写。此更新将扫描T1中的所有行。
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

原因

因为排序规则不匹配两台服务器上时,已准备好的更新查询将扫描远程表出现问题。

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


修补程序信息可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,将申请提交到 Microsoft 客户服务和支持,以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰

http://support.microsoft.com/contactus/?ws=support注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

系统必备组件若要应用此修补程序,您必须安装 SQL Server 2012年。

注册表信息不需要应用此修补程序后,更改注册表。

修补程序替换信息此修补程序不替换任何其他修补程序。


状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

解决方法

要处理很多问题,请使用下列方法之一︰

  • 不要在客户端应用程序源代码中使用预准备的语句。您可以改用特殊语句或可调用语句的存储过程如如果驱动程序所支持的接口。

  • 两台服务器上使用匹配的排序规则。

详细信息

若要启用跟踪标记,将添加启动参数-T4199或DBCC TRACEON(4199,-1)预准备的语句被编译启用该行为之前。

可以使用以下方法之一来启用跟踪标记︰

  • 启动 SQL Server 之前,请使用 Microsoft SQL Server 配置管理器,右键单击受影响的实例中,并添加启动参数-T4199 ,以便将来坚持跨重新启动和所有连接到实例。

  • 动态地启用的设置在运行时获取启动服务,一旦和全局范围内对所有连接"(-1)。"一定要释放过程高速缓存,如果您打算如何打开或关闭开关用来进行测试。

    使用以下方法来启用设置全局和动态︰
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    使用以下方法来禁用该设置全局和动态︰
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×