次の方法で共有


パーティションと DirectQuery モード (SSAS 表形式)

このセクションでは、DirectQuery モデルでのパーティションの使用方法について説明します。 表形式モデルのパーティションの一般的な情報については、「 パーティション (SSAS テーブル)」を参照してください。

使用されているパーティションを変更する方法、またはパーティションに関する情報を表示する方法については、「 DirectQuery パーティションの変更 (SSAS テーブル)」を参照してください。

DirectQuery モードでのパーティションの使用

テーブルごとに、DirectQuery データ ソースとして使用する 1 つのパーティションを指定する必要があります。 複数のパーティションがある場合、モデルを切り替えて DirectQuery モードを有効にすると、既定では、テーブルに作成された最初のパーティションに DirectQuery パーティションとしてフラグが設定されます。 これは後で SQL Server Data Tools (SSDT) のパーティション マネージャーを使用して変更できます。

DirectQuery モードで 1 つのパーティションのみを許可する理由

テーブル モデル (OLAP モデルの場合と同様) では、テーブルのパーティションは SQL クエリによって定義されます。 パーティション定義を作成する開発者は、パーティションが重複しないようにする必要があります。 Analysis Services では、レコードが 1 つまたは複数のパーティションに属しているかどうかは確認されません。

キャッシュされた表形式モデルのパーティションは、同じように動作します。 インメモリ モデルを使用している場合、キャッシュへのアクセス中に、DAX 数式がパーティションごとに評価され、結果が結合されます。 ただし、表形式モデルで DirectQuery モードを使用する場合、複数のパーティションを評価し、結果を結合して、リレーショナル データ ストアに送信するための SQL ステートメントに変換することはできません。 これを行うと、許容できないパフォーマンスの損失と、結果が集計される際の潜在的な不正確さにつながる可能性があります。

そのため、DirectQuery モードで応答するクエリの場合、サーバーは DirectQuery パーティションと呼ばれる DirectQuery アクセスのプライマリ パーティションとしてマークされている 1 つのパーティションを使用 します。 このパーティションの定義で指定された SQL クエリは、DirectQuery モードでクエリに応答するために使用できるデータの完全なセットを定義します。

パーティションを明示的に定義しない場合、エンジンはリレーショナル データ ソース全体に対して SQL クエリを発行し、DAX 数式によって指示されたセットベースの操作を実行し、クエリ結果を返します。

テーブルに複数のパーティションがあり、DirectQuery パーティションとして 1 つのパーティションを選択した場合、既定では、他のすべてのパーティションはインメモリ使用専用としてマークされます。

キャッシュされたモデルと DirectQuery モデルのパーティション

DirectQuery パーティションを構成するときは、パーティションの処理オプションを指定する必要があります。

DirectQuery パーティションには 2 つの処理オプションがあります。 このプロパティを設定するには、SQL Server Data Tools (SSDT) または SQL Server Management Studio で パーティション マネージャー を使用し、[ 処理オプション ] プロパティを選択します。 次の表に、このプロパティの値を示し、接続文字列に対する DirectQueryUsage プロパティと組み合わせた場合の各値の効果について説明します。

DirectQueryUsage プロパティ 処理オプション プロパティ 注記
ダイレクトクエリ このパーティションを処理しない モデルが DirectQuery のみを使用している場合、処理は必要ありません。

ハイブリッド モデルでは、DirectQuery パーティションを決して処理されないように構成できます。 たとえば、非常に大きなデータ セットで操作していて、キャッシュに完全な結果を追加したくない場合は、DirectQuery パーティションにテーブル内の他のすべてのパーティションの結果の和集合を含め、共用体を処理しないように指定できます。 リレーショナル ソースに移動するクエリは影響を受けず、キャッシュされたデータに対するクエリは他のパーティションのデータを結合します
InMemory と DirectQuery パーティションの処理を許可する モデルがハイブリッド モードを使用している場合は、メモリ内に対するクエリと DirectQuery データ ソースに対するクエリに同じパーティションを使用する必要があります。

こちらもご覧ください

パーティション (SSAS テーブル)