集群列存储索引是否影响最终用户的SSAS性能查询,如何解决此问题?
在此处阅读下面的文章,排序顺序如何影响SSAS查询客户用户的性能。
有什么办法可以解决这个问题?
重建SSAS索引/汇总是否有效?已经知道从数据仓库到SSAS处理多维数据集的时间可能会受到影响。真正关心的是最终客户-用户SSAS查询体验。
当前在SSAS Cube中实现多维模型。
最佳答案
这要看情况。让我们从问题定义开始。
当在处理步骤中馈入有序数据时,
带有“群集列存储”索引的未排序数据的问题不仅影响SSAS,而且在CCI可以进行段消除时会降低查询性能。有一些技术可以克服这一问题-在将常规表转换为CCI之前对数据进行排序或在加载到CCI表时对数据进行排序。
关于SSAS在无序数据上的性能。这肯定不是最佳的,但是到什么程度呢?实际上,只有测试才能证明这一点。它可能取决于多种因素-初始数据集,多维数据集设计,最终用户查询。多维数据集结构的增长将减慢操作速度,但是多少呢?根据经验,如果多维数据集为100+ GB,并且其最大的分区/度量值组超过SSAS使用的RAM的10%以上,我将不遗余力,并努力提供数据排序。在其他情况下,我不会理会此类问题。
从CCI订购数据。首先,避免过时的语法
SELECT TOP 2147483647 ... FROM ... ORDER BY ...
使用符合ANSI且限制较少的
SELECT ... FROM ... ORDER BY ... OFFSET 0 ROWS
关于在SSAS分区定义中使用时的次优执行计划。不幸的是,SSAS查询生成引擎不允许使用神奇的
option (recompile)
。同样,如果这是一个严重的问题,请定义一个表值函数(参数 View )以实现最佳执行计划,并在SSAS分区定义中使用此TVF。如果这是该项目的第一个实现方案-我将没有采取此类措施,并将其报告为项目风险,这需要关注进行生产,并且可能需要投入额外精力。
不幸的是,重建SSAS索引/聚合不会改善这种情况。馈入SSAS时,需要在数据库查询级别上对数据进行预排序。
关于sql-server - 聚集的列存储索引是否影响SSAS查询最终用户性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55639468/