2

NON EMPTY私は可能な限り句を避ける必要があると仮定していました。そのため、実際にクエリがはるかに高速になっていることを偶然発見したとき、私はショックを受けました!

これをサンプリングします:

select 
[Measures].[Count Of Requests] on 0,
([Client].[Client Number].children , [Date].[Year].children) on 1
from [MyCube]

-- ホット キャッシュで 19 秒

select 
[Measures].[Count Of Requests] on 0,
non empty ([Client].[Client Number].children , [Date].[Year].children) on 1
from [MyCube]

--コールドキャッシュで 5 秒 (一貫して)

NON EMPTY再帰的ではありませんか?ローカルキャッシュのサイズが原因ですか?

4

1 に答える 1

0

NON EMPTYスクリプトのプロセスの最後に適用されるという印象を受けました。ここで前の質問/回答を参照してください: MDX クエリが処理される論理的な順序

したがって、事実上すべてが返され、グリッドまたはクライアント アプリケーションに結果をレンダリングする前に、NON EMPTY命令は行または列のいずれかの null タプルが破棄されることを意味します。

最初のスクリプトが大量のデータを返す場合、レンダリング プロセスが完了するまでに余分な時間がかかりますか?

別の興味深い記事 re。NON EMPTYここにある: http://www.bidn.com/blogs/DustinRyan/bidn-blog/2996/non-empty-vs-nonempty-to-the-death

于 2014-11-25T10:24:50.683 に答える