2015-04-28 44 views
1

我们有大量存储过程,其中数据是从SQL Server的同一台服务器上的SSAS多维数据集中提取的,并与来自SQL Server表的数据结合使用。SSAS和SQL Server

我们目前使用链接服务器openquery和MDX从SSAS中提取数据。这会导致执行计划出现一些问题,因为它无法估计将从SSAS返回的行数。这真的是连接SSAS和SQL Server的唯一方式吗?

+0

从SSAS多维数据集中提取数据后,运行update stat并重建可能有所帮助的索引。你在提取数据方面有问题吗? – Hiten004

+0

我发现'OPENQUERY'相当有效的方法。每天使用该结构的第一个查询很慢,但其他存储过程很快就会运行。 – whytheq

回答

1

我会重新考虑您的架构 - 尝试将您当前从SQL Server表中提取的任何数据包含到SSAS多维数据集中。然后你的查询变成直接的MDX,应该很快(可能需要聚合)。

1

根据数据从SQL Server表的性质和背后拉的目的,有我建议两种方法:

  • 如果从SQL Server表中的数据被用于总结和做不会经常改变,那么您可以将它作为MOLAP尺寸数据推入到立方体中。使用这种方法,您可以获得最佳的查询性能。另一方面,如果它是交易数据并且经常更新,您仍然可以使用ROLAP storage和/或Proactive Caching将其推送到立方体中。使用这种方法,您可以将最新数据整合到多维数据集中(延迟最短),但这会对查询性能产生一些影响。

尽管在任何情况下,我同意从存储过程转换大量的返工。