我的分析服務數據庫在處理後響應非常慢。使用ClearCache XMLA命令清除緩存也可以重現問題。我知道在清除緩存後,查詢性能會變慢,但在使用Microsoft.AnalysisServices.AdomdClient庫時性能也會下降。分析服務清除緩存後響應速度慢
我做了一個小時間測試。
DateTime start = DateTime.Now;
int dc = cube.Dimensions.Count; // cube = Microsoft.AnalysisServices.AdomdClient.CubeDef
DateTime end = DateTime.Now;
Debug.WriteLine("Start: " + start.ToLongTimeString());
Debug.WriteLine("Dimensions count: " + dc.ToString());
Debug.WriteLine("End: " + end.ToLongTimeString());
例如,這將給出的結果
Start: 8:41:53
Dimensions count: 18
End: 8:43:15
,所以要花近15分鐘,得到計數的尺寸。如果我得到這些措施(只有少數幾種),那麼性能就會一樣。
第一次操作後,所有以下操作和查詢都很快。我的問題是,我該如何解決這個問題?當數據庫在每個數據庫處理後幾乎不響應時,這是一個真正的問題。我可以做一些事情來處理後自動「啓動」數據庫,但不會將等待時間從一個地方移到另一個地方?
更新: 我發現了這個問題。性能與Management Studio和AdomdClient不同的原因在於,使用AdomdClient時,我具有與Analysis Services數據庫不同的連接字符串。我在數據庫中有一些自定義的東西,它使用該連接字符串觸發。無論如何,現在問題已經解決,並且與實際的Analysis Services沒有直接關係。
教訓:確保你使用正確的ConnectionString :)
這對我的情況沒有任何影響。清除緩存後,您提到的查詢在1-2秒內運行,並且我的應用程序的性能與以前一樣緩慢。 –
因此,當您運行_any_其他查詢時,它會在清除緩存/處理多維數據集後運行1.5分鐘,但是當您運行它時,它將在1s內執行?如何: 與會員measures.X AS dimensions.count SELECT Measures.X ON 0 FROM [多維數據集] –
Management Studio中清除緩存和運行查詢後,執行1-2秒,但是當使用Microsoft.AnalysisServices.AdomdClient.dll(AdomdCommand)運行該查詢,它會執行緩慢(大約1.5分鐘)。所以這個問題似乎只是與AdomdClient相關? –