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でテストしていることを確認してください:)
これは私の場合は何の違いもありませんでした。キャッシュをクリアした後、あなたが言及したクエリーは1〜2秒で実行されました。私は前回と同じように低速のパフォーマンスを経験しました。 –
それで、あなたが_any_他のクエリを実行すると、それはキャッシュをクリアし/キューブを処理した後1.5分間実行されますが、これを実行すると1秒で実行されますか?どのようにについて:[キューブ] –
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とだけ関連しているようです。 –