2011-06-22 34 views
1

Analysis Servicesデータベースが処理後に非常に遅く応答しています。この問題は、ClearCache XMLAコマンドでキャッシュをクリアすることによっても再現できます。私はキャッシュをクリアした後、クエリのパフォーマンスが遅くなることを理解していますが、Microsoft.AnalysisServices.AdomdClientライブラリを使用している場合でもパフォーマンスが低下しています。キャッシュをクリアした後のAnalysis Servicesの応答が遅い

小さなタイミングテストを行いました。

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 

だから、それは次元のカウントを取得するために、ほぼ1.5分かかり、以下の結果を得られます。私が(いくつかしかない)対策を取った場合と同じパフォーマンスです。

最初の操作の後、次の操作とクエリはすべて高速です。私の質問は、私はこの問題を回避するにはどうすればいいですか?すべてのデータベース処理後にデータベースがほとんど応答しなくなるというのは本当の問題です。処理後にデータベースを自動的に「起動」するために何かを行うことはできますが、待ち時間をある場所から別の場所に移動するだけでは不十分です。

更新: 私は問題を発見しました。 Management StudioとAdomdClientでパフォーマンスが異なる理由は、AdomdClientではAnalysis Servicesデータベースと異なる接続文字列を使用していたためです。私はその接続文字列で解雇されたデータベースにカスタムのものを持っています。とにかく、この問題は現在解決されており、実際のAnalysis Servicesとは直接関係していませんでした。

レッスンは学んだ:あなたが正しいれたconnectionStringでテストしていることを確認してください:)

答えて

2

答えは質問のアップデートである - 犯人は間違った接続文字列です。

+0

これは私の場合は何の違いもありませんでした。キャッシュをクリアした後、あなたが言及したクエリーは1〜2秒で実行されました。私は前回と同じように低速のパフォーマンスを経験しました。 –

+0

それで、あなたが_any_他のクエリを実行すると、それはキャッシュをクリアし/キューブを処理した後1.5分間実行されますが、これを実行すると1秒で実行されますか?どのようにについて:[キューブ] –

+0

FROM 0 ON dimensions.count SELECT Measures.X AS MEMBER measures.X WITH Management Studioでキャッシュをクリアし、そのクエリを実行した後、それは1〜2秒で実行しますが、ときMicrosoft.AnalysisServices.AdomdClient.dll(AdomdCommand)でそのクエリを実行すると、ゆっくり実行されます(約1.5分)。だから、この問題はAdomdClientとだけ関連しているようです。 –

関連する問題