メンバーを計算し、指定された日付範囲のメンバーを選択する次の MDX クエリがあります。
WITH
MEMBER [Measures].[Prior] as ([Date Post Transaction].[Calendar Month Period].CurrentMember.Lag(12),[Measures].[Unique Patients])
MEMBER [Measures].[Current] as [Measures].[Unique Patients]
SELECT {[Measures].[Current],[Measures].[Prior]}
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME ON COLUMNS , NON EMPTY Hierarchize(AddCalculatedMembers({DrilldownLevel({[Date Post Transaction].[Calendar Month Period].Children})}))
DIMENSION PROPERTIES PARENT_UNIQUE_NAME , HIERARCHY_UNIQUE_NAME ON ROWS FROM (SELECT ({[Date Post Transaction].[Calendar Month Period].&[201207],[Date Post Transaction].[Calendar Month Period].&[201208],[Date Post Transaction].[Calendar Month Period].&[201209],[Date Post Transaction].[Calendar Month Period].&[201210],[Date Post Transaction].[Calendar Month Period].&[201211],[Date Post Transaction].[Calendar Month Period].&[201212],[Date Post Transaction].[Calendar Month Period].&[201301],[Date Post Transaction].[Calendar Month Period].&[201302],[Date Post Transaction].[Calendar Month Period].&[201303],[Date Post Transaction].[Calendar Month Period].&[201304],[Date Post Transaction].[Calendar Month Period].&[201305],[Date Post Transaction].[Calendar Month Period].&[201306]})
ON COLUMNS FROM [cube])
WHERE ([Provider Billing].[Specialty Mgma Pcps].&[Cardiology: Inv-Intvl])
基本的に、このクエリは、現在の日付範囲と前の日付範囲の循環器内のすべての患者を月ごとに求めています。
このクエリの実行には 8 ~ 9 秒かかりますが、これは異常です。Analysis Services を使用してクエリ時間を実行およびテストしていますが、MDX の最適化に役立つ他のツールを使用したことはありません。私の最初の質問は、MDX の最適化に役立つツールを知っている人はいますか?
私の主な質問は、結果をより速く処理するために、クエリでどのメソッドまたは構造を使用する必要があるかということです。私はもともと .lag() 関数を使用しておらず、代わりに現在と前の月を含むクエリを実行していました。この切り替えにより、結果時間が改善されました。
この同じ形式を使用するレポートがいくつかありますが、指標 (MEASURES) が異なるだけなので、それぞれ 5 秒以上実行されるクエリで得られる読み込み時間が想像できます。