Ssas 表格式内存压缩

Ssas 表格式内存压缩,ssas,ssas-tabular,Ssas,Ssas Tabular,我正在我现有的数据仓库上测试SSAS表格。我读到内存中的数据压缩将是非常棒的,最多可以压缩10次。仓库重量约为600MB,分析模型有大约60个度量(主要是行计数和基本计算)。在SQLServerManagementStudio中,我检查了分析数据库的大小:~1000MB。不是我所期望的(希望最多100MB) 我使用简单的资源监视器检查msmdsrv.exe进程的内存使用情况。令我惊讶的是,在完全处理数据库之后,msmdsrv进程的内存消耗从200MB跃升到1600MB。我部署了同一模型的第二个实

我正在我现有的数据仓库上测试SSAS表格。我读到内存中的数据压缩将是非常棒的,最多可以压缩10次。仓库重量约为600MB,分析模型有大约60个度量(主要是行计数和基本计算)。在SQLServerManagementStudio中,我检查了分析数据库的大小:~1000MB。不是我所期望的(希望最多100MB)

我使用简单的资源监视器检查msmdsrv.exe进程的内存使用情况。令我惊讶的是,在完全处理数据库之后,msmdsrv进程的内存消耗从200MB跃升到1600MB。我部署了同一模型的第二个实例,该实例连接到同一个源,它增长到2500MB以上。所以估计的尺寸实际上是正确的

数据仓库是非常典型的——星型模式、事实和维度,没有什么特别之处

为什么数据没有以任何方式压缩?它怎么可能比未压缩的源仓库占用更多内存


我将非常感谢关于这个谜团的任何提示:)

您应该阅读并观看有关vertipaq analyzer的Marco Russo资料。您可以找到模型的哪个部分占用了大部分内存

也许这能给你一些启发:

表格模型是基于列存储的,这意味着如果列中有许多唯一值,则会得到较低的压缩(例如,增量ID列,如transactionID)。
->尽可能省略高基数列 ->尽可能尝试拆分列如果您有DateTime列,则应将它们拆分为两部分(日期和时间)。这样,您就有了更多重新获取的值 ->分区中数据的排序顺序可能会影响压缩率[运行长度编码(RLE)] ->使用measure(不占用空间)代替计算列(占用空间)