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