我们有大量存储过程,其中数据是从SQL Server的同一台服务器上的SSAS多维数据集中提取的,并与来自SQL Server表的数据结合使用。SSAS和SQL Server
我们目前使用链接服务器openquery
和MDX从SSAS中提取数据。这会导致执行计划出现一些问题,因为它无法估计将从SSAS返回的行数。这真的是连接SSAS和SQL Server的唯一方式吗?
我们有大量存储过程,其中数据是从SQL Server的同一台服务器上的SSAS多维数据集中提取的,并与来自SQL Server表的数据结合使用。SSAS和SQL Server
我们目前使用链接服务器openquery
和MDX从SSAS中提取数据。这会导致执行计划出现一些问题,因为它无法估计将从SSAS返回的行数。这真的是连接SSAS和SQL Server的唯一方式吗?
我会重新考虑您的架构 - 尝试将您当前从SQL Server表中提取的任何数据包含到SSAS多维数据集中。然后你的查询变成直接的MDX,应该很快(可能需要聚合)。
根据数据从SQL Server表的性质和背后拉的目的,有我建议两种方法:
如果从SQL Server表中的数据被用于总结和做不会经常改变,那么您可以将它作为MOLAP尺寸数据推入到立方体中。使用这种方法,您可以获得最佳的查询性能。另一方面,如果它是交易数据并且经常更新,您仍然可以使用ROLAP storage和/或Proactive Caching将其推送到立方体中。使用这种方法,您可以将最新数据整合到多维数据集中(延迟最短),但这会对查询性能产生一些影响。
尽管在任何情况下,我同意从存储过程转换大量的返工。
从SSAS多维数据集中提取数据后,运行update stat并重建可能有所帮助的索引。你在提取数据方面有问题吗? – Hiten004
我发现'OPENQUERY'相当有效的方法。每天使用该结构的第一个查询很慢,但其他存储过程很快就会运行。 – whytheq