2012-04-25 1 views
1

SQL Server 2008 R2を使用して、サマリーレポートのMDXメジャー計算でパフォーマンスの問題が発生しました。粗いレベルで別の数値データを要約するためのSSAS Cube計算

私はPersonディメンションと、1人あたり複数のレコードを含む関連ファクト表を持っています。 (資格)

例[対策]。[その他のクォン数]は、特定のタイプの資格の数を私に与えます。 一人一人につき、[Measures]。[Other Qual Count]> 1を持つことができます。

私の要約レポートでは、これを1人につき1つだけにしたいと考えています。

サマリーレポートは、不明なリージョン階層(3つの階層の1つである可能性があります)を含む他のいくつかのディメンションに対して値をロールアップします。

次のように私はこれを行っている:

MEMBER [Measures].[Other Count2] 
AS 
SUM(
    EXISTING [Person].[Staff Code].[Staff Code].Members, 
    IIF([Measures].[Other Count] > 0, 1, NULL) 
) 

は、しかし、私はいくつかのより多くの導出尺度を作成する必要があります - お互いに由来し、個人レベルでのすべての不要な複数のカウントを避けるために。クエリは<から1分に1秒遅くなります(私の目標は< 3秒です)。

すべての派生した理由は、6相互に排他的な柱の一つは、人が中に報告される範囲内かを決定するためのロジックがたくさんある。

私はまた、キューブ計算を作成しようとしましたが、これは私を与えます[その他の数]と同じ値です。

SCOPE (({[Person].[Staff Code].[Staff Code].MEMBERS}, [Measures].[Has Other Qual])); 
    THIS = ([Person].[Staff Code].[Staff Code], [Measures].[Has Other Qual]).Count; 
END SCOPE; 

使用できるMDX/Cubeの方が良いかどうか、またはパフォーマンスを改善するための提案はありますか?

これは残念ながら私のMDXで初めて作業していて、締め切りに近いこの問題に遭遇しました。可能であれば、キューブを変更せずにこの作業を行うようにしています。

答えて

1

キューブを変更して問題を解決しましたが、これは予想よりも簡単でした。

データソースビューでは、Personレベルの既存のファクトテーブルを要約した名前付きクエリを作成しました。私はまた、私の報告書に必要なすべての列を派生させます。

この名前付きクエリを別個のファクトテーブルとして扱うため、私はそのためのメジャーグループを追加しました。

関連する問題