SSAS中的神话一扫而空

 这篇文章是试图打消了一些误解,似乎得到SSAS开发商之间重复一遍又一遍。 While the truths are nothing new and have been documented in multiple sources like BOL, SQL CAT whitepapers, books and blog posts, they seem to consistently escape the attention of the wider public.虽然真理不是什么新鲜事,并已在BOL等多个来源的记录,SQL CAT白皮书,书籍和博客文章,他们似乎始终逃脱广大公众注意。
1 SSAS pre-aggregates data by default 1 SSAS中预先聚合数据,默认情况下

While it is true that SSAS can pre-aggregate data this does not happen by default.虽然这是事实SSAS中可以预先汇总数据不默认情况下发生。 SSAS compresses data, indexes data and caches data but it does not pre-aggregate data unless we define aggregations. SSAS中的数据,索引数据和缓存中的数据压缩,但它不预先汇总数据,除非我们定义的聚合。 When I am saying pre-aggregate I mean that SSAS does not automatically know what the Internet Sales Amount for Australia in 2007 is.当我说前总,我的意思是,SSAS不会自动知道在2007年澳大利亚互联网销售金额。 It needs to get the leaf-level data and sum it up; unless we have built an aggregation on Country and Year for the partition containing the Internet Sales Amount measure.它需要得到叶级数据,概括起来讲,除非我们已经建立包含Internet Sales Amount量值的分区了一个国家和年份的聚集。 In that case the data is pre-aggregated and ready for retrieval.在这种情况下的数据预聚合和检索。

2 We can emulate in MDX at no cost Enterprise Edition functionality in Standard Edition 2,我们可以模拟在MDX 中,不需任何费用在标准版企业版功能

Well, we can't.好吧,我们不能。 We can emulate certain features like LastNonEmpty aggregation functions for example, but it comes at a cost.我们可以模拟像LastNonEmpty例如聚合函数的某些功能,但它的成本。 The cost usually relates to Storage Engine (multi-threaded) vs Formula Engine (single-threaded) execution.成本通常涉及到存储引擎(多线程)与一级方程式引擎(单线程)执行。

3 SSAS is always faster than SQL Server RDBMS 3 SSAS中总是比SQL Server RDBMS中快

While it is true that SSAS is faster than SQL Server RDBMS in many cases, this does not always hold true.虽然这是事实,SSAS比S​​QL Server RDBMS的速度在许多情况下,这样做并不总是如此。 A particular area in which the relational engine beats SSAS is the retrieval and processing of low-level granular data.关系引擎节拍SSAS中的一个特定区域,是低层次的粒度数据的检索和处理。 SSAS usually beats the RDBMS when it comes to ad-hoc access to aggregated data. SSAS中通常节拍RDBMS的时候还即席访问汇总数据。

4 MOLAP is always faster than ROLAP 4的MOLAP 总是比ROLAP快

If you read SQL CAT's “ Analysis Services ROLAP for SQL Server Data Warehouses ” whitepaper you can see that after careful tuning ROLAP can be faster than MOLAP.如果你读过“ 为SQL Server数据仓库的分析服务的 ROLAP”白皮书SQL猫的,你可以看到,经过仔细调整的ROLAP可以比MOLAP的速度更快。 Not always, but sometimes – enough to claim that it is not true that MOLAP is always faster than ROLAP.并不总是,但有时-足够的要求,这是不正确的,MOLAP的总是比ROLAP快。 This ties a bit to the previous myth and proves that a well tuned RDBMS can perform very well with aggregates.这关系有点以前的神话和证明,以及调整的RDBMS可以执行与聚合很好。

From the paper:从纸张:

“At last, SQLCAT's redesign and optimization efforts paid off. “最后,SQLCAT的重新设计和优化的努力没有白费The ROLAP cube was finally ready for performance testing, and thanks to the amazingly fast performance of the relational SQL Server engine on top of a super-fast storage subsystem, the results looked better than expected. ROLAP多维数据集进行性能测试,终于准备好,关系超快速存储子系统上的SQL Server引擎的表现惊人的快,结果看起来比预期要好。 To everybody's surprise, the ROLAP cube outpaced the MOLAP cube in 45 percent of all queries right from the start (see Figure 14). 出乎大家的意料,ROLAP多维数据集从一开始(参见图14)超过45%的查询MOLAP多维数据集。 Only 39 percent of the queries showed substantially slower response times in ROLAP mode (more than twice the amount of MOLAP time) and 16 percent showed moderate performance degradation (less than twice the amount of MOLAP time).” ROLAP模式中,只有39%的查询结果显示大幅较慢的响应时间(MOLAP的时间量的两倍多)和16%,表明适度的性能下降(不少于两次的MOLAP时间)。“

5 Usage Based Optimisations do not work well 5用法基于优化不能很好的工作

In SQL Server Analysis Services 2008 the Usage Based Optimisation (UBO) algorithm has been redesigned.在SQL Server分析服务2008年,根据使用情况优化算法(UBO)已被重新设计。 Now it works, and it works well.现在它的工作原理,以及它工作得很好。 It does not create redundant aggregations and in general performs much better.它不产生多余的聚合和一般表现要好得多。 Building UBO aggregations has always been recommended by Microsoft and even more so now.大厦巴西利亚办事处聚合一直由微软建议更应如此现在。

6 Rigid attribute relationships boost performance 6刚性的属性关系,大大地提高了它的性能

Whether an attribute relationship is Rigid or Flexible does not actually improve performance at all.无论是刚性或柔性的属性关系实际上并不提高性能。 Not query performance.无法查询的性能。 A wrong choice here only affects processing of partition indexes.这里的一个错误的选择只会影响分区索引的处理。 If an attribute relationship is static, setting it to Rigid means that you do not have to process partition indexes when you update the dimension.如果一个属性的关系是静态的,它设置为刚性的手段,你没有过程分区索引,当您更新维度。 This is all the benefit you get from Rigid relationships.这是所有的好处,你从刚性关系。 Going too far and marking changing relationships to Rigid may have a very negative impact as a change will prompt a complete process of the partition data and indexes, which will take much longer than updating just the indexes.走得太远和标记改变僵化的关系,可能有一个非常消极的影响,作为一个变化会提示一个分区中的数据和索引,这将花费更长的时间比只更新索引的完整过程。 Either way, there is no difference during query execution.无论哪种方式,是在查询执行过程中没有区别。

7 MDX and DAX are hard 7 MDX和DAX指数是很难

I believe that this particular myth stems from the fact that we get to compare MDX and DAX to sweet and fluffy languages like SQL and C#.我相信,这个特殊的神话源于事实是,我们得到比较MDX和DAX指数甜美蓬松的语言,如SQL和C#。 It all depends on the vantage point.这一切都取决于制高点。 Take the following “Hello world!” program in Malbolge for comparison purposes:在下面的“世界您好!”节目Malbolge为比较的目的:

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#” ('&%: 9 z2Vxwv ]!~}|,POqponl美元Hjig%EB @@>}=<中号:9wv6WsU2T |纳米,JCL(我&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj”Fhg${z@> `CB] V呢?TX <uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>

MDX is not all that bad from a Malbolge developer's point of view, is it? MDX是不是所有的,从一个Malbolge开发人员的观点很好,是吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值