我有一个48 GB的内存和一个SQL Server分析服务(表格模式),在其上安装2016标准版SP1 CU7的服务器。
我可以部署从Visual Studio表格模型。
我可以手动运行XMLA脚本:
{
"refresh": {
"type": "full",
"objects": [
{
"database": "MyCube"
}
]
}
}
但是,当我从运行SQL代理作业脚本,我得到这个错误:
the JSON DDL request failed with the following error: Failed to execute XMLA. Error returned: 'There's not enough memory to complete this operation. Please try again later when there may be more memory available.'.. at Microsoft.AnalysisServices.Xmla.XmlaClient.CheckForSoapFault
处理前的内存约为4GB,它处理多维数据集在增加,但如果它击中约18.5 GB,它失败。
是否有人知道一个解决方案吗?
在SQL 2016 Analysis Services的表格实例被限制为16GB的RAM作为记录here。
当你做一个完整的过程,你保持立方体的工作副本,并在后台您处理一个卷影副本。当卷影副本准备好,然后它会替换工作副本。基本上,这意味着,在处理时需要的内存两倍的金额作为多维数据集的大小。这可能是一个问题,当你每次的16 GB的限制与SSAS标准版。
一个解决方案是第一个做的过程与clearValues,这清空立方体,然后做全过程。更多细节在这里http://byobi.com/2016/12/how-much-ram-do-i-need-for-my-ssas-tabular-server/
或者,另一个是与SSAS服务器的内存\ VertiPaqPagingPolicy设置玩。看到这里https://www.jamesserra.com/archive/2012/05/what-happens-when-a-ssas-tabular-model-exceeds-memory/这里更多的细节https://www.sqlbi.com/articles/memory-settings-in-tabular-instances-of-analysis-services/
当然还有另一种解决方案是升级到企业版。
为了跟进格雷格的意见,我面临着类似的问题,在工作和解决方法是不是做数据库刷新的,我没有表刷新来代替。我创建了2个SQL作业。我的表格模型中有40桌。因此,基于表的大小,我刷新在其他工作中的一个作业和表格的X量表Y的量。你可以创建2个以上SQL作业并且每个工作表少,如果你想。这将少放负载上的内存。
你可以通过你的分区表处理数据的小子集,这可以在SSMS处理。这Article提供了有关如何实现这一点很好的概述。