2011-06-22 33 views
1

我的分析服務數據庫在處理後響應非常慢。使用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 :)

回答

2

答案就在問題升級測試 - 罪魁禍首是一個不正確的連接字符串。

+0

這對我的情況沒有任何影響。清除緩存後,您提到的查詢在1-2秒內運行,並且我的應用程序的性能與以前一樣緩慢。 –

+0

因此,當您運行_any_其他查詢時,它會在清除緩存/處理多維數據集後運行1.5分鐘,但是當您運行它時,它將在1s內執行?如何: 與會員measures.X AS dimensions.count SELECT Measures.X ON 0 FROM [多維數據集] –

+0

Management Studio中清除緩存和運行查詢後,執行1-2秒,但是當使用Microsoft.AnalysisServices.AdomdClient.dll(AdomdCommand)運行該查詢,它會執行緩慢(大約1.5分鐘)。所以這個問題似乎只是與AdomdClient相關? –