SSAS 从内存中卸载表格立方体

问题描述 投票:0回答:1

我正在寻找从内存中卸载表格立方体以调整性能的选项。以下是我的用例。

版本:SSAS 2019

我们有 4 个表格立方体分布在 3 个 SSAS 主机上。每个立方体将以不同的时间表构建,选择循环法构建下一个立方体。 例如:cube1 在 DAY1 构建的用户的 Host1 中处于活动状态, DAY2 - cube1将在Host2后台搭建,完成后翻转给用户。 DAY3 - 遵循同样的模式

同样的情况适用于 cube2、3 和 4(所有 4 个都不会在同一主机中结束,它们遵循随机模式,因为构建时间表不同)

第三天 - Host3 的 cube1 面向用户,其余实例(Host1 和 Host2 中的 cube1)作为备份,如果 host3 实例中出现任何数据问题,我们将把前一天的版本(Host2)翻转给用户。由于 Host1 和 Host2 中的 cube1 是故障转移版本(不常见),不想将 cube1 保留在 Host1 和 Host2 的内存中。

  1. 我想从内存中卸载非面向用户的多维数据集,以便主机中活动的其他多维数据集将获得空间。
  2. 假设这也有助于提高性能,因为我们的主机接近内存阈值

根据我在互联网上的浏览,看起来没有直接的方法可以通过运行任何进程选项来实现这一点。如果任何解释不清楚,请提出任何解决方法或让我知道,很乐意更新/澄清。

ssas ssas-tabular
1个回答
0
投票

驱逐立方体对性能没有帮助。它将必须重新加载才能用于故障转移,如果您没有足够的内存就会失败。所以你不能真正使用你通过驱逐释放的内存。

但是您要查找的操作是SSAS Attach/Detatch。没有办法保持数据库附加但将其从内存中逐出,但重新加载它与附加相同。

SSMS 知道如何执行此操作并可以为您生成脚本。要分离表格数据库,请使用 TMSL 命令

{
  "detach": {
    "database": "AdventureWorksDW"
  }
}

再次附加它,在文件系统中发现文件夹名称,然后运行 XMLA 命令

<Attach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Folder>C:\Program Files\Microsoft SQL Server\MSAS16.MSSQLSERVER\OLAP\Data\AdventureWorksDW.2.db</Folder>
  <ReadWriteMode xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100">ReadWrite</ReadWriteMode>
</Attach>

请注意,Attach 是一项昂贵的操作,因为许多内存中的数据结构需要重建,因为只有原始数据存储在文件中。

© www.soinside.com 2019 - 2024. All rights reserved.