症状
当你在包含聚集列存储索引的表上运行数据操作语言(DML)语句时,会发生此问题。 出现此问题时,在 sys.column_store_row_groups 动态管理视图(DMV)中,你会看到许多新条目,其 delta_store_hobt_id 列不显示 null 值,并且 总行数 列显示较小的数字。 您可能还会收到以下错误消息:
函数中检测到未生成的任务 = <FunctionName>:: Get file = line = <LineNumber>
此外,还会生成相关的转储文件。
解决方案
服务包信息
若要解决此问题,请获取 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 累积更新5 /en-us/help/3011055
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
更多信息
出现此问题的原因是每个 update 或 delete 语句锁定了所有增量存储。 当所有增量存储均已锁定时, insert 语句将创建一个新的增量存储。 此修补程序尝试仅锁定受 更新 或 删除 影响的增量存储,如果存在多个打开的增量存储,则会更快地创建新的增量存储。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。