2015-04-28 51 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將其推送到立方體中。使用這種方法,您可以將最新數據整合到多維數據集中(延遲最短),但這會對查詢性能產生一些影響。

儘管在任何情況下,我同意從存儲過程轉換大量的返工。