0

我遇到了一个我最近经常遇到的问题。我正在使用分析服务标准层即ie。有20GB的内存。然而有时,当我处理多维数据集,我收到以下错误:Azure Analysis Services最大容许内存问题

"Exception: Microsoft.AnalysisServices.OperationException: Failed to save modifications to the server. Error returned: 'You have reached the maximum allowable memory allocation for your tier. Consider upgrading to a tier with more available memory. Technical Details: RootActivityId: e024b2d1-ce22-4edd-9a21-68b6b288d7bb Date (UTC): 8/11/2017 11:48:20 AM '. at Microsoft.AnalysisServices.Tabular.Model.SaveChanges(SaveOptions saveOptions) at Microsoft.AnalysisServices.Tabular.Model.SaveChanges(SaveFlags saveFlags) at Submission#0.Run(TimerInfo myTimer, TraceWriter log) in :line 59 Stack trace: at Microsoft.AnalysisServices.Tabular.Model.SaveChanges(SaveOptions saveOptions) at Microsoft.AnalysisServices.Tabular.Model.SaveChanges(SaveFlags saveFlags) at Submission#0.Run(TimerInfo myTimer, TraceWriter log) "

基本上表格使用存储器引擎xVelocity所以所有的数据在内存中。那么这是否意味着内存包含了数据库中的所有内存以及表格模型中计算表所需的所有内存?如果使用分区来处理模型,它是否可以解决这个问题?

回答

1

来自模型的数据全部在内存中。如果你只有一个已经被处理的分区,并且你调用的进程已经满了,你需要将内存加倍。对数据进行分区并仅加载新的/更改的分区将避免您需要增加两倍的内存。