3

巨大な mdx クエリを使用して、SQL Server 2008 上のキューブに問い合わせようとしています。

このクエリには、(クエリで定義された) 20 を超える計算メンバーが含まれています。

各メンバーには、キューブのディメンションに対する制限が含まれています。すべてのディメンションが常に必要なわけではありませんが、必要な場合もあります。

まあ、メンバー16人までは問題なく動いています。メンバーが 16 を超えると、"クエリ オプティマイザーがクエリ プランで生成したサブキューブが多すぎます" というメッセージ エラーが表示されます。

このエラーを解決する方法はありますか?

ありがとう!

ジュリエッタ

4

1 に答える 1

1

パフォーマンスのボトルネックに陥っています。最初のステップは、パフォーマンスのボトルネックがフォーミュラエンジン内にあるのかストレージエンジン内にあるのかを判断することだと思います。これを実現するには、キャッシュがコールドのときに、フォーミュラエンジンとストレージエンジンがパフォーマンスの低いMDXクエリを実行するのに必要な時間を決定します。ストレージエンジンが費やした時間は、SQLServerプロファイラートレースの各QuerySubcubeイベントの経過時間を合計することで決定できます。フォーミュラエンジンによって費やされた時間は、クエリ終了イベントの合計実行時間からストレージエンジンによって費やされた時間を差し引くことによって決定できます。

16番目の計算されたメンバーがエラーを発生させることがわかっているので、すでに開始しているので、そこから逆方向に作業して、サブキューブイベントを制限しているものを特定できます。

これに関する詳細については、次の記事を参照してください:http://74.125.95.132/search?q=cache:XgP38c6S9-UJ: www.badlydressedboy.com/docs/IdentifyingAndResolvingMDXBottlenecksSSAS.doc+query+optimizer+generated+too+ many + subcubes + in + the + query + plan&cd = 14&hl = en&ct = clnk&gl = us

于 2010-02-02T22:45:56.377 に答える