症状
在 SQL Server Analysis Services 中对维度执行处理操作时,如果该服务处于内存压力下,则无法处理该维度,并且数据可能会损坏。注意 此问题出现在相对较少见的竞争状态中,但这种情况并不普遍。 出现此问题时,你可能会遇到错误的维度关系或ProcessUpdate 失败。在以下情况下,已发现此问题:
-
Analysis Services 内存使用超出处理操作期间为服务配置的高内存限制,从而导致分析服务主动清理内存页面。
-
处理期间没有记录问题的错误或消息,并且维度处理不会失败。 相反,处理已完成,损坏的数据将写入到维度文件中。
-
该问题最有可能显示为新添加的维度成员的不正确的维度属性关系。 例如:产品维度中的成员显示在不正确的类别或子类别下。
-
这种损坏可能会显示自身:作为后续ProcessUpdate在包含严格属性关系的维度上,维度处理失败,并显示以下错误消息:
在维度的增量处理期间,不能更改属性之间的严格关系。
注意 此错误也可能会因合法原因而发生,例如基础数据源中的更改。 但是,如果用作维度源的表或视图中的基础数据未发生更改,这可能是错误的原因。
-
当服务器处于内存压力下时,不会始终出现此问题,但如果清洗器线程在完成维度处理之前为新添加的维度成员 evicts 数据页面,有时会出现此问题。 这是 Analysis Services 服务中的维度处理线程和内存清理程序线程之间相对较少见的竞争条件。
-
安装此修补程序后,该问题将不再出现,但受影响的对象必须重新处理才能解决该问题。
-
当服务器不在内存压力下时,受影响的维度的 ProcessUpdate将更正此问题导致的所有灵活关系的损坏。 对于具有一个或多个严格属性关系的受影响的维度,处理将失败,并出现上述错误。
-
若要更正包含严格关系的维度的问题,请更改服务器上受影响的维度的属性关系并运行ProcessUpdate。 然后,可以将属性关系重新更改为严格,并且可以重建使用该维度的度量值组的索引。
-
解决方案
此问题首先在 SQL Server 的以下累积更新中修复:
累积更新 14 for sql server 2014 累积更新 4 for Sql Server 2012 Service pack 3 累积更新 13 for sql server 2012 SP2 累积更新第7版 sql server 2014 Service Pack 1
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
Sql server 2014 的最新累积更新sql SERVER 2012 SP3的最新累积更新sql SERVER 的累积更新 2012 SP2
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。