Sql server SSAS与sqlserver

Sql server SSAS与sqlserver,sql-server,sql-server-2012,ssas,mdx,openquery,Sql Server,Sql Server 2012,Ssas,Mdx,Openquery,我们有大量的存储过程,其中数据从与SQL server相同的服务器上的SSAS多维数据集中提取,并与SQL server表中的数据相结合 我们目前使用一个链接服务器,openquery和MDX从SSAS中提取数据。这会给执行计划带来一些问题,因为它无法估计将从SSA返回的行数。这真的是连接SSAS和SQL Server的唯一方法吗?我会重新考虑您的体系结构-尝试将当前从SQL Server表中提取的任何数据包含到SSAS多维数据集中。然后,您的查询将变成直接的MDX,并且应该非常快速(可能需要聚

我们有大量的存储过程,其中数据从与SQL server相同的服务器上的SSAS多维数据集中提取,并与SQL server表中的数据相结合


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

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

根据SQL Server表中数据的性质和提取数据的目的,我建议使用两种方法:

  • 如果SQL Server表中的数据用于汇总,并且不经常更改,那么您可以将其作为MOLAP维度数据推送到多维数据集中。使用这种方法,可以获得最佳的查询性能

  • 另一方面,如果它是事务性数据并且经常更新,您仍然可以使用和/或将其推送到多维数据集中。使用这种方法,您可以将最新的数据合并到多维数据集中(延迟最小),但这会对查询性能产生一些影响


尽管在这两种情况下,我都同意从存储过程中进行翻译时会有大量的返工。

从SSAS多维数据集中提取数据后,运行update stat并重新生成索引,这可能会有所帮助。您在提取数据方面有问题吗?我发现
OPENQUERY
是一种非常有效的方法。每天使用该结构的第一个查询速度很慢,但其他存储过程运行很快。