我最近经常遇到一个问题。我正在使用分析服务标准层,即。拥有20GB内存。然而,有时当我处理立方体时,我会收到以下错误:
"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,因此所有数据都在内存中。那么这是否意味着内存包括数据库中的所有内存以及表格模型中计算表所需的所有内存?如果使用分区来处理模型是否可以解决这个问题?
最佳答案
模型中的数据都在内存中。如果您只有一个已处理的分区并且您对其调用进程已满,则您将需要双倍的内存。对数据进行分区并仅加载新的/更改的分区将避免您需要双倍的内存。
关于Azure Analysis Services 最大允许内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634697/