多次元データベースの互換性レベルの設定 (Analysis Services)

Analysis Services では、データベース互換性レベル プロパティによって、データベースの機能レベルが決定されます。 互換性レベルは、各モデルの種類に固有です。 たとえば、互換性レベル 1100 は、データベースが多次元か表形式かによって、意味が異なります。

このトピックでは、多次元データベースの互換性レベルについてのみ説明します。 表形式ソリューションの詳細については、「互換性レベル (SSAS テーブル SP1)」を参照してください。

注意

表形式モデルには、多次元モデルに適用できないデータベース互換性レベルが存在します。 互換性レベル 1103 は、多次元モデルには存在しません。 表形式ソリューションの 1103 の詳細については、SQL Server 2012 SP1 における表形式モデルの新機能と互換性レベル」を参照してください。

多次元データベースの互換性レベル

現在、機能レベルによって異なる多次元データベースの動作は、文字列ストレージ アーキテクチャのみです。 データベースの互換性レベルを高くすることで、メジャーとディメンションの文字列ストレージの上限である 4 GB をオーバーライドできます。

多次元データベースの CompatibilityLevel プロパティの有効値を以下に示します。

設定

説明

1050

この値はスクリプトやツールには表示されませんが、SQL Server 2005、SQL Server 2008、または SQL Server 2008 R2 で作成されたデータベースを表します。 CompatibilityLevel が明示的に設定されていないデータベースはすべて、暗黙的に 1050 レベルで実行されます。

1100

これは、SQL Server 2012 で作成した新しいデータベースの既定値です。 また、この値を以前のバージョンの Analysis Services で作成されたデータベースに指定すると、この互換性レベルでのみサポートされている機能 (つまり、文字列データを含むディメンション属性や個別のカウント メジャーの大きくなった文字列ストレージ) を使用できるようになります。

データベースの CompatibilityLevel を 1100 に設定すると、StringStoresCompatibilityLevel プロパティが追加されます。このプロジェクトを使用すると、パーティションおよびディメンションの代替文字列ストレージを選択できます。

注記注意

高いレベルに設定したデータベース互換性は元に戻せません。 互換性レベルを 1100 に上げた後は、データベースを SQL Server 2012 Analysis Services 以降で実行し続ける必要があります。 1050 にロールバックすることはできません。 SQL Server 2012 よりも前のサーバーのバージョンでは、1100 データベースをアタッチまたは復元できません。

必要条件

データベース互換性レベルは、SQL Server 2012 で導入されました。 データベース互換性レベルを表示または設定するには、SQL Server 2012 Analysis Services が必要です。

データベースをローカル キューブにすることはできません。 ローカル キューブでは、CompatibilityLevel プロパティがサポートされません。

データベースは、以前のリリース (SQL Server 2008 R2 以前) で作成され、SQL Server 2012 Analysis Services サーバーにアタッチまたは復元されている必要があります。 SQL Server 2012 に配置されたデータベースは既に 1100 であり、ダウングレードして低いレベルで実行することはできません。

多次元データベースの既存のデータベース互換性レベルの確認

データベース互換性レベルを表示または変更するには、XMLA を使用するしかありません。 データベースを指定する XMLA スクリプトは、SQL Server Management Studio で表示または変更できます。

データベースの XMLA 定義で CompatibilityLevel プロパティを検索し、それが存在しなかった場合、データベースが 1050 レベルになっている可能性が高いと考えられます。

XMLA スクリプトの表示と変更の方法については、次のセクションで説明します。

SQL Server Management Studio でのデータベース互換性レベルの設定

  1. 互換性レベルを上げる前に、変更を元に戻すことができるように、データベースをバックアップします。

  2. SQL Server Management Studio を使用して、データベースをホストする SQL Server 2012 Analysis Services サーバーに接続します。

  3. データベース名を右クリックし、[データベースをスクリプト化] をポイントし、[ALTER] をポイントします。次に、[新しいクエリ エディター ウィンドウ] をクリックします。 データベースの XMLA 表現が新しいウィンドウで開きます。

  4. 次の XML 要素をコピーします。

    <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>
    
  5. それを、</Annotations> 終了要素の後、<Language> 要素の前に貼り付けます。 XML は次の例のようになります。

    </Annotations>
    <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>
    <Language>1033</Language>
    
  6. ファイルを保存します。

  7. スクリプトを実行するには、[クエリ] メニューの [実行] をクリックするか、F5 キーを押します。

同じ互換性レベルが必要なサポートされる操作

次の操作では、ソース データベースで同じ互換性レベルを共有している必要があります。

  1. 異なるデータベースのパーティションのマージは、両方のデータベースで同じ互換性レベルを共有している場合にのみサポートされます。

  2. 別のデータベースのリンク ディメンションを使用するには、同じ互換性レベルが必要です。 たとえば、SQL Server 2012 データベースで SQL Server 2008 R2 データベースのリンク ディメンションを使用する場合、SQL Server 2008 R2 データベースを SQL Server 2012 サーバーに移植し、互換性レベルを 1100 に設定する必要があります。

  3. サーバーの同期は、サーバーで同じバージョンとデータベース互換性レベルを共有している場合にのみサポートされます。

次の手順

データベース互換性レベルを上げると、SQL Server Data Tools で StringStoresCompatibilityLevel プロパティを設定できるようになります。 これにより、メジャーとディメンションの文字列ストレージが大きくなります。 この機能の詳細については、「ディメンションおよびパーティションの文字列ストレージの構成」を参照してください。

関連項目

概念

データベースのバックアップ、復元、および同期 (XMLA)