SQL Server Analysis Servicesでセル セキュリティが有効になっている場合のライトバック パフォーマンスの問題

この記事は、SQL Server Analysis Servicesでセル セキュリティが有効になっているときに発生するライトバック パフォーマンスの問題を回避するのに役立ちます。

元の製品バージョン: SQL Server 2012 Analysis Services
元の KB 番号: 2747616

現象

セル セキュリティが有効になっているロールで Microsoft SQL Server Analysis Services (SSAS) を実行していることを前提としています。 UPDATE CUBE 多次元式 (MDX) ステートメントを実行しようとすると、セル セキュリティが有効になっていないロールよりも、ステートメントの実行に時間がかかる場合があります。

原因

この動作は仕様です。 セル セキュリティが有効になっている場合、Analysis Services エンジンはセル単位モードでクエリを実行します。 ライトバック操作が高レベルで割り当てを実行する場合、リーフ レベルのセルの領域は大きくなります。

注:

スペースはファクト テーブル内の行数ではありません。 スペースは、すべてのディメンション粒度属性の完全なクロス結合スペースです。 セルのセキュリティをチェックするには、これらのセルを 1 つずつ列挙するのに長い時間がかかります。

回避策

この問題を回避するには、以下のいずれかの方法を使用します。

  • 方法 1

    セキュリティで保護する必要があるメジャーを別のキューブに配置し、ロールの下にキューブ レベルの書き込みセキュリティを実装します。

    注:

    このメソッドを使用する場合のパフォーマンスは、クエリが管理者ロールで実行される場合と同じくらい高速です。 ただし、キューブの設計は複雑になり、1 つの MDX クエリで異なるメジャーを返すには、リンクメジャー グループを使用する仮想キューブを作成する必要があります。 さらに、ライトバック操作を実行する場合は、ライトバック メジャーに基づいて正しいキューブ名を使用する MDX クエリを作成する必要があります。

  • 方法 2

    特定のメンバーの最小粒度レベルでライトバック操作を実行します。 多くの詳細な粒度メンバーに割り当てることはできません。

    注:

    書き戻し操作をサポートするには、各ディメンションで調整メンバーとしてマークされたダミー メンバーをディメンション テーブルに作成する必要がある場合があります。