处理 MOLAP 多维数据集时等待缓冲区闩锁类型 3 时发生超时

Time-out occurred while waiting for buffer latch type 3 while processing MOLAP cube

这是我在尝试处理 SQL Server 2012 MOLAP Cube 时从日志中得到的错误。

"Time-out occurred while waiting for buffer latch type 3 for page (1:2044928) database ID 2.; 42000." 来源="Microsoft SQL Server 2012 Analysis Services" 帮助文件="Error ErrorCode="3240034318" 描述="Errors in the OLAP storage engine: An error occurred while processing the 'Measurement' partition of the measure group for the 'PE cube' cube from the Cube database."

我在 XMLA 中编写了处理任务脚本,并通过代理作业中的 SSAS 命令执行处理。 第一步是处理更新所有维度,这成功了,但是当我想处理多维数据集的数据时,加载失败并弹出此错误。

我首先尝试使用 SSIS 包进行处理,但这导致整个服务器崩溃,而不仅仅是作业失败。这让我相信这是一个性能问题,但是机器 运行 作业是一个 Azure VM,有 16 个处理器和 112 GB RAM,所以我不知道去哪里找。我还尝试 运行 在服务器上没有任何其他活动的情况下完成作业,但这没有帮助。 包含 SSAS 实例的磁盘仍有 500GB 可用空间。 度量值组正在查询包含 1.8 亿条记录的 table。

在数据较少的开发服务器上处理多维数据集时没有问题。我曾经在 SSAS 中直接处理 SSAS 多维数据集时成功地处理了整个多维数据集,但是通过 DTEXEC、SSISDB 或使用 SSDT 处理导致服务器崩溃。 早些时候我遇到了不同的超时错误,但在将 SSAS ExternalCommandTimeOut、ExternalConnectionTimeOut 和 ForceCommitTimeout 属性调整为 0 后,这种情况不再发生。

我尝试了多种处理设置,但因为我认为这是一个性能问题,所以我尝试使处理的性能尽可能低。

处理设置: 对象:立方体; 选项:处理数据; 处理顺序: 顺序与单独的交易。 回写Table选项:使用现有; 不处理受影响的对象。

更新: 我已经处理了自己触发错误的措施,这并没有完成,在 Activity 监视器中我看到了很多 Wait_Type IO_Completion 和 CXPacket。在查询 sys.dm_exe_requests 时,我看到 Select 和 wait_type IO_Completion 已经 运行 很长时间了,并且有很多读取。 昨晚我试图处理所有的测量,除了之前触发错误的测量组,但不幸的是整个服务器又崩溃了...

更新2: 我们已经考虑升级到高级存储,但这意味着我们必须从 A11 切换到 DS 或 GS​​ 系列。这意味着我们需要调整包含实时解决方案的整个 VM 的大小,从而导致停机时间和恢复 VHDS 的工作,并更换包含部分实时解决方案的当前 OS 磁盘。 我们确定的另一个选择是应用分区或改进度量的基础查询。不幸的是,付出的努力比预期的要多得多,现在快速解决问题将有助于销售长期解决方案改进。

更新3: 我们已与 Microsoft 联系,他们建议从 A11 VM 迁移到 D14 V2 并升级到高级存储磁盘。这将是我们的下一步,并将在下周五执行。迁移后我将更新或关闭此 post。

如果您遗漏了信息,请告诉我。任何有助于我查明情况的建议都将不胜感激!

升级到更适合情况的VM(DS14 V2)和升级到P30高级存储磁盘已经解决了出现的问题。问题不在于处理或配置多维数据集的方式,而在于所使用的硬件。