KB3020112 - 修复:在 SQL Server 2014 中执行 DML 语句时发生非生成错误

应用对象
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use)

症状

在包含聚集列存储索引的表上运行数据操作语言 (DML) 语句时,会出现此问题。 发生此问题时,在 DMV) (sys.column_store_row_groups动态管理视图中,会看到许多新条目的delta_store_hobt_id列不显示 null 值,并且总行列显示较小的数字。 还可能会收到以下错误消息:

注意

在 函数中检测到的非生成任务 = <FunctionName>::Get file = line = <LineNumber>

此外,会生成相关的转储文件。

解决方法

Service Pack 信息

若要解决此问题,请获取适用于 SQL Server 2014 的 Service Pack 1。

有关 SQL Server 2014 Service Pack 1 (SP1) 的详细信息,请参阅 SQL Server 2014 Service Pack 1 中修复的 bug

累积更新信息

此问题首先在以下SQL Server累积更新中得到解决。

SQL Server 2014 /zh-cn/help/3011055 的累积更新 5

关于 SQL Server 的累积更新

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

      

详细信息

出现此问题的原因是,每个更新或删除语句都会锁定所有增量存储。 锁定所有增量存储后,insert 语句将创建新的增量存储区。 此修补程序尝试仅锁定受更新或删除影响的增量存储,如果已存在许多打开的增量存储,则创建新的增量存储的速度会降低。

状态

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