ディメンションおよびパーティションの文字列ストレージの構成
文字列ストレージは、ディメンション属性またはパーティションの非常に大きな文字列 (文字列ストアの 4 GB のファイル サイズ制限を超えるもの) に対応するように再構成できます。 ディメンションまたはパーティションにこのサイズの文字列ストアが含まれている場合は、StringStoresCompatibilityLevel プロパティを変更することによって、ファイル サイズの制約を回避できます。
文字列ストレージの構成はオプションです。つまり、SQL Server 2012 で作成した新規データベースでも、既定の文字列ストア アーキテクチャが使用され、最大ファイル サイズが 4 GB に制限されます。 大きな文字列ストレージ アーキテクチャを使用すると、パフォーマンスにわずかながら明白な影響が生じます。 文字列ストレージ ファイルが最大 4 GB の制限に達しているか、それに近い場合にだけ使用してください。
注 |
---|
この設定はデータ マイニング モデルには適用されません。 現在、データ マイニング構造を含むモデルでは、GB 単位のファイル サイズの制限が引き続き発生する可能性があります。 |
大きな文字列ストレージを使用するには、ディメンションまたはパーティションの StringStoresCompatibilityLevel プロパティを設定します。 このプロパティの有効値を以下に示します。
値 |
説明 |
---|---|
1050 |
既定の文字列ストレージ アーキテクチャを指定します。ストアごとの最大ファイル サイズが 4 GB に制限されます。 |
1100 |
大きな文字列ストレージを指定します。ストアごとに最大 40 億個の一意な文字列がサポートされます。 |
重要 |
---|
オブジェクトの文字列ストレージ設定を変更すると、そのオブジェクト自体と依存オブジェクトの再処理が必要になります。 手順を完了するには処理が必要です。 |
このトピックの内容は次のとおりです。
文字列ストアについて
前提条件
手順 1: SQL Server Data Tools で StringStoreCompatiblityLevel プロパティを設定する
手順 2: オブジェクトを処理する
文字列ストアについて
Analysis Services 多次元データベースでは、データの特性に基づく最適化が実行できるように、文字列は数値データとは別に格納されます。 文字列データは、通常、名前や説明を表すディメンション属性で使用されます。 文字列データを個別のカウント メジャー内に置くこともできます。 文字列データはキーで使用することもできます。
文字列ストアは、そのファイル拡張子 (たとえば、asstore、.bstore、.ksstore、または .string) によって識別できます。 既定では、これらの各ファイルは、最大 4 GB に制限されます。 SQL Server 2012 では、必要に応じて文字列ストアを拡張できる別のストレージ方式を指定することにより、最大ファイル サイズをオーバーライドできます。
物理ファイルのサイズを制限する既定の文字列ストレージ アーキテクチャとは異なり、大きな文字列ストレージでは文字列の最大数を制限します。 大きな文字列ストレージの上限は、一意の文字列とレコードのどちらかの数が 40 億に達した時点となります。 大きな文字列ストレージでは均等なサイズのレコードが作成され、各レコードのサイズは 64 K ページに等しくなります。 1 つのレコードに収まらない非常に長い文字列がある場合、文字列数の実際の制限は 40 億よりも少なくなります。
前提条件
Analysis Services の SQL Server 2012 バージョンが必要です。
ディメンションとパーティションは MOLAP ストレージを使用する必要があります。
データベース互換性レベルを 1100 に設定する必要があります。 SQL Server Data Tools と SQL Server 2012 バージョンの Analysis Services を使用してデータベースを作成または配置した場合、データベース互換性レベルはあらかじめ 1100 に設定されています。 Analysis Services の以前のバージョンで作成したデータベースを SQL Server 2012 に移動した場合は、互換性レベルを更新する必要があります。 再配置ではなく、移動するデータベースには、SQL Server Management Studio を使用して互換性レベルを設定できます。 詳細については、「多次元データベースの互換性レベルの設定 (Analysis Services)」を参照してください。
手順 1: SQL Server Data Tools で StringStoreCompatiblityLevel プロパティを設定する
SQL Server データ ツール (SSDT) を使用して、変更するディメンションまたはパーティションが含まれているプロジェクトを開きます。
ディメンションの文字列ストレージを変更するには、ソリューション エクスプローラーを開きます。 文字列ストレージを変更するディメンションをダブルクリックします。
ディメンション デザイナーの [属性] ペインで、ディメンションの親ノードが選択されていることを確認します (たとえば、ディメンションが Customers の場合は、子属性のいずれかではなく、Customers を選択します)。
[プロパティ] ペインの [詳細設定] セクションで、[StringStoresCompatibilityLevel] を 1100 に設定します。 大きなストレージを必要とする他のディメンションで同じ手順を繰り返すか、残りのディメンションの値を 1050 のままにします。
パーティションに対しては、ソリューション エクスプローラーから、キューブを開きます。
[パーティション] タブをクリックします。
パーティションを展開し、追加のストレージ容量を必要とするパーティションを選択して、StringStoresCompatibilityLevel プロパティを変更します。
ファイルを保存します。
手順 2: オブジェクトを処理する
オブジェクトを処理した後は、新しいストレージ アーキテクチャが使用されます。 オブジェクトを処理することで、以前は文字列ストアのオーバーフロー状態を報告していたエラーが発生しなくなるため、ストレージの制約の問題が正常に解決されたことも確認できます。
- ソリューション エクスプローラーで、変更したディメンションを右クリックし、[処理] をクリックします。
新しい文字列ストア アーキテクチャを使用している各オブジェクトに、完全処理オプションを使用する必要があります。 処理の前に、ディメンションに対する影響分析を必ず実行して、依存オブジェクトも再処理が必要かどうかを確認してください。
関連項目
タスク
Analysis Services オブジェクトを処理するためのツールまたは方法の選択