多次元データベースの互換性レベル (Analysis Services)
適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Servicesでは、データベース互換性レベル プロパティによってデータベースの機能レベルが決まります。 互換性レベルは、各モデルの種類に固有です。 たとえば、互換性レベル 1100 は、データベースが多次元か表形式かによって意味が異なります。
このトピックでは、多次元データベースの互換性レベルについてのみ説明します。 表形式ソリューションの詳細については、「 Analysis Services での表形式モデルの互換性レベル」を参照してください。
注意
表形式モデルには、多次元モデルに適用できないデータベース互換性レベルが存在します。 互換性レベル 1103 は、多次元モデルには存在しません。 表形式ソリューションの 1103 の詳細については、「 SQL Server 2012 SP1 における表形式モデルの新機能と互換性レベル 」を参照してください。
多次元データベースの互換性レベル
現在、機能レベルによって異なる多次元データベースの動作は、文字列ストレージ アーキテクチャのみです。 データベースの互換性レベルを高くすることで、メジャーとディメンションの文字列ストレージの上限である 4 GB をオーバーライドできます。
多次元データベースの CompatibilityLevel プロパティの有効値を次に示します。
設定 | 説明 |
---|---|
1050 | この値はスクリプトやツールには表示されませんが、SQL Server 2005 (9.x)、SQL Server 2008、または SQL Server 2008 R2 で作成されたデータベースに対応しています。 CompatibilityLevel が明示的に設定されていないデータベースはすべて、暗黙的に 1050 レベルで実行されます。 |
1100 | これは、SQL Server 2012 (11.x) または SQL Server 2017 で作成する新しいデータベースの既定値です。 以前のバージョンのSQL Server Analysis Servicesで作成されたデータベースに対しても指定して、この互換性レベルでのみサポートされている機能 (つまり、ディメンション属性の文字列ストレージの増加、または文字列データを含む個別のカウント メジャー) を使用できるようにします。 データベースの CompatibilityLevel を 1100 に設定すると、 StringStoresCompatibilityLevelプロパティが追加されます。このプロジェクトを使用すると、パーティションおよびディメンションの代替文字列ストレージを選択できます。 |
警告
高いレベルに設定したデータベース互換性は元に戻せません。 互換性レベルを 1100に上げた後は、データベースをより新しいサーバーで実行し続ける必要があります。 1050にロールバックすることはできません。 2012 (11.x) または SQL Server SQL Server 2017 より前のサーバー バージョンでは、1100 データベースをアタッチまたは復元できません。
前提条件
データベース互換性レベルは、SQL Server 2012 (11.x) で導入されています。 データベース互換性レベルを表示または設定するには、SQL Server 2012 (11.x)SQL Server Analysis Services以上が必要です。
データベースをローカル キューブにすることはできません。 ローカル キューブは CompatibilityLevel プロパティをサポートしません。
データベースは以前のリリース (SQL Server 2008 R2 以前) で作成された後、SQL Server 2012 (11.x)SQL Server Analysis Services以降のサーバーに接続または復元されている必要があります。 SQL Server 2012 に配置されたデータベースは既に 1100 であり、ダウングレードして低いレベルで実行することはできません。
多次元データベースの既存のデータベース互換性レベルの確認
データベース互換性レベルを表示または変更するには、XMLA を使用するしかありません。 データベースを指定する XMLA スクリプトは、SQL Server Management Studio で表示または変更できます。
データベースの XMLA 定義で CompatibilityLevel プロパティを検索し、それが存在しなかった場合、データベースが 1050 レベルになっている可能性が高いと考えられます。
XMLA スクリプトの表示と変更の方法については、次のセクションで説明します。
SQL Server Management Studio でのデータベース互換性レベルの設定
互換性レベルを上げる前に、変更を元に戻すことができるように、データベースをバックアップします。
SQL Server Management Studioを使用して、データベースをホストする SQL Server 2017SQL Server Analysis Services サーバーに接続します。
データベース名を右クリックし、 [データベースをスクリプト化]をポイントして [ALTER]をポイントします。次に、 [新しいクエリ エディター ウィンドウ]をクリックします。 データベースの XMLA 表現が新しいウィンドウで開きます。
次の XML 要素をコピーします。
<ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>
それを、
</Annotations>
終了要素の後、<Language>
要素の前に貼り付けます。 XML は次の例のようになります。</Annotations> <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel> <Language>1033</Language>
ファイルを保存します。
スクリプトを実行するには、[クエリ] メニューの [実行] をクリックするか、F5 キーを押します。
同じ互換性レベルが必要なサポートされる操作
次の操作では、ソース データベースで同じ互換性レベルを共有している必要があります。
異なるデータベースのパーティションのマージは、両方のデータベースで同じ互換性レベルを共有している場合にのみサポートされます。
別のデータベースのリンク ディメンションを使用するには、同じ互換性レベルが必要です。 たとえば、SQL Server 2012 (11.x) データベースのSQL Server 2008 R2 データベースのリンクディメンションを使用する場合は、SQL Server 2008 R2 データベースをSQL Server 2012 (11.x) サーバーに移植し、互換性レベルを 1100 に設定する必要があります。
サーバーの同期は、サーバーで同じバージョンとデータベース互換性レベルを共有している場合にのみサポートされます。
次の手順
データベースの互換性レベルを上げた後、SQL Server Data Toolsで StringStoresCompatibilityLevel プロパティを設定できます。 これにより、メジャーとディメンションの文字列ストレージが大きくなります。 この機能の詳細については、「 ディメンションおよびパーティションの文字列ストレージの構成」を参照してください。