bugfix> ssas > 投稿

述べたようにここに :プロセスデータ 集計やインデックスを作成せずにデータのみを処理します。パーティションにデータがある場合、パーティションにソースデータを再設定する前に、そのデータは削除されます。一方、完全なプロセス  Analysis Servicesは、パーティション内のすべてのデータも削除してから、パーティションを処理します。したがって、パーティションに接続されている属性階層が AttributeHierarchyOptimizedState = true に設定されている場合Analysis Servicesは、クエリのパフォーマンスを向上させるために、属性階層のインデックスを作成します。この動作は、Adventure Worksデータベースに対して次のクエリを実行することで確認できました。

SELECT
DIMENSION_NAME, ATTRIBUTE_NAME, ATTRIBUTE_INDEXED,
ATTRIBUTE_COUNT_MIN, ATTRIBUTE_COUNT_MAX
FROM SystemRestrictSchema($system.discover_partition_dimension_stat
        ,DATABASE_NAME = 'AdventureWorksDW2014Multidimensional-EE'
        ,CUBE_NAME = 'Adventure Works'
        ,MEASURE_GROUP_NAME = 'Internet Sales'
        ,PARTITION_NAME = 'Internet_Sales_2013')

私がプロセスデータ ATTRIBUTE_INDEXED列は、すべての属性でfalseに設定されています。私がする時完全なプロセス  ATTRIBUTE_INDEXED列は、ほとんどの属性でtrueに設定されています。

それで、なぜ誰かがデータのみを処理して、クエリのパフォーマンスを犠牲にして何を取得したいのでしょうか。 ありがとう。

回答 1 件
  • 一言で言えば、キュ​​ーブのダウンタイムを減らし、キューブの準備時間を減らすことです。コストでは、あなたが述べたように、クエリのパフォーマンスの低下。
    処理では通常、少なくとも変更のコミット時にキューブをオフラインにします。これにはかなりの時間がかかる場合があります。処理によるキューブのオフラインを減らすために、特に大きなキューブでは、更新されたデータを持つキューブのパーティション(パーツ)が処理日 オプション。この処理が完了すると、キューブ内の新しいデータをクエリに使用できますが、パフォーマンスが低下します。その後プロセスインデックス 影響を受けるパーティションで開始され、オブジェクトのすべてのインデックスと集計が作成されます。
    私の経験から、それは使用され、大きなプロジェクトでのみ意味があります。別の発見-実行中プロセスのデフォルト on cubeは、正確なメジャーグループなどを指定せずに、不足しているインデックスと集計を構築します。

あなたの答え