算术溢出HOLAP / ROLAP但不是MOLAP

时间:2014-12-29 19:29:11

标签: ssis ssas oledb olap sql-server-2014

我在创建ROLAP / HOLAP多维数据集后处理mdx查询时遇到问题,如果我创建MOLAP多维数据集一切正常(处理时间大约为0-2000毫秒),但是当我将多维数据集结构更改为ROLAP / HOLAP时,我的mdx查询调用很长时间(20分钟+它们永远不会结束),或者它们(Rolap / Holap立方体)抛出算术溢出错误。在我的数据仓库中,我有大约20亿(对于美国百万富翁)的记录。我使用Visual Studio 2013数据工具和Microsoft SQL Server 2014。

这是我得到的错误:

arithmetic overflow error converting expression to data type int 22003

我将非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

MOLAP:

数据经过预处理并存储在多维数据集中。因此,无论何时运行MDX查询,它都会直接从多维数据集中获取聚合数据。 MDX的复杂性对下面的关系数据源没有影响。 底线:它快速且独立于数据源(一旦处理完立方体)。

ROLAP:

每当MDX查询运行时,它在后台转换为SQL,粗略地说,并从关系数据源获取数据。由于数据是实时获取的,因此这些数据显然很慢(与标准优化的SQL查询一样慢。除非MDX非常简单,否则它在速度方面永远无法与MOLAP匹配。此外,由于它与在关系数据库中,它通常带有与下面的关系数据库相关的限制( 数据类型溢出,是其中之一 )。底线:这是实时的,但代价是缓慢而 依赖于底层关系数据源

HOLAP

尝试结合两者的优点但仍然具有相同的ROLAP限制。

最底线!! 因此,如果您碰巧使用ROLPA / HOLAP,那么您的查询会很慢并且容易出错。