Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Business Intelligence SQL Server 2012 Analysis Services SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

症状

请考虑以下情况:

  • 在 Microsoft SQL Server 2014 或 SQL Server 2012 中运行过程。

  • 该过程包含下列条件:

    • 它联接了非常频繁更新的表。

    • 它具有包含参数的 WHERE 子句。

    • 它使用选项(重新编译)。

  • 此过程在具有不同参数值集的多个并发连接上运行。

  • 服务器的负载较重,导致上述每个过程的时间比平时更长。

在这种情况下,如果在查询编译结束和在连接开始执行查询之间的时间间隔内满足以下附加条件,则你可能会收到在连接上运行的过程中出现的错误结果:

  • 条件 1:另一个并发连接对已联接的表进行更新,该表的大小足以触发连接上的查询的另一个重新编译。

  • 条件 2:同一查询已从另一个连接重新编译,然后放入缓存中。

重要说明 这种计时问题非常少见。

原因

出现此问题的原因是,在连接上运行查询后,查询的参数值更改为错误值。 出现这种情况的原因是,并发编译之间存在极其罕见的计时问题。

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

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

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

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