Niveau de compatibilité d’une base de données multidimensionnelle (Analysis Services)

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Dans SQL Server Analysis Services, la propriété de niveau de compatibilité de la base de données détermine le niveau fonctionnel d’une base de données. Les niveaux de compatibilité sont propres à chaque type de modèle. Par exemple, un niveau de compatibilité de 1 100 a une signification différente selon que la base de données est multidimensionnelle ou tabulaire.

Cette rubrique décrit le niveau de compatibilité des bases de données multidimensionnelles uniquement. Pour plus d’informations sur les solutions tabulaires, consultez Niveau de compatibilité pour les modèles tabulaires dans Analysis Services.

Notes

Les modèles tabulaires possèdent des niveaux de compatibilité de base de données qui ne s'appliquent pas aux modèles multidimensionnels. Le niveau de compatibilité 1103 n'existe pas pour les modèles multidimensionnels. Consultez What is new for the Tabular model in SQL Server 2012 SP1 and compatibility level (Nouveautés concernant le modèle tabulaire dans SQL Server 2012 SP1 et le niveau de compatibilité) pour plus d’informations sur 1103 pour les solutions tabulaires.

Niveaux de compatibilité des bases de données multidimensionnelles

Actuellement, le seul comportement de base de données multidimensionnelle qui varie selon le niveau de compatibilité est l'architecture de stockage de chaînes. En augmentant le niveau de compatibilité d'une base de données, vous pouvez dépasser la limite de 4 Go pour le stockage de chaînes de mesures et de dimensions.

Pour une base de données multidimensionnelle, les valeurs valides pour la propriété CompatibilityLevel sont les suivantes :

Paramètre Description
1050 Cette valeur n’est pas visible dans le script ou les outils, mais elle correspond aux bases de données créées dans SQL Server 2005 (9.x), SQL Server 2008 ou SQL Server 2008 R2. Toute base de données pour laquelle CompatibilityLevel n'est pas défini explicitement, s'exécute implicitement au niveau 1050 .
1100 Il s’agit de la valeur par défaut pour les nouvelles bases de données que vous créez dans SQL Server 2012 (11.x) ou SQL Server 2017. Vous pouvez également le spécifier pour les bases de données créées dans des versions antérieures de SQL Server Analysis Services afin d’activer l’utilisation de fonctionnalités prises en charge uniquement à ce niveau de compatibilité (à savoir, un stockage de chaînes accru pour les attributs de dimension ou des mesures de comptage distinctes qui contiennent des données de chaîne).

Les bases de données dont la valeur CompatibilityLevel est définie sur 1 100 comportent une propriété supplémentaire, StringStoresCompatibilityLevel, qui vous permet de choisir un autre stockage de chaînes pour les partitions et les dimensions.

Avertissement

La définition de la compatibilité de la base de données sur un niveau supérieur est irrévocable. Après avoir augmenté le niveau de compatibilité à 1 100, vous devez continuer à exécuter la base de données sur des serveurs plus récents. Vous ne pouvez pas revenir au niveau 1 050. Vous ne pouvez pas attacher ou restaurer une base de données 1100 sur une version de serveur antérieure à SQL Server 2012 (11.x) ou SQL Server 2017.

Prérequis

Les niveaux de compatibilité de base de données sont introduits dans SQL Server 2012 (11.x). Vous devez avoir SQL Server 2012 (11.x)SQL Server Analysis Services ou une version ultérieure pour afficher ou définir le niveau de compatibilité de la base de données.

La base de données ne peut pas être un cube local. Les cubes locaux ne prennent pas en charge la propriété CompatibilityLevel .

La base de données doit avoir été créée dans une version précédente (SQL Server 2008 R2 ou antérieure), puis attachée ou restaurée à un serveur SQL Server 2012 (11.x)SQL Server Analysis Services ou supérieur. Les bases de données déployées vers SQL Server 2012 sont déjà au niveau 1100 et ne peuvent pas être déclassifiées pour s'exécuter à un niveau inférieur.

Déterminer le niveau de compatibilité de la base de données existant pour une base de données multidimensionnelle

La seule façon d'afficher ou modifier le niveau de compatibilité de la base de données est de passer par XMLA. Vous pouvez afficher ou modifier le script XMLA qui spécifie la base de données dans SQL Server Management Studio.

Si vous recherchez la définition XMLA d'une base de données pour la propriété CompatibilityLevel et qu'elle 'existe pas, vous disposez probablement d'une base de données au niveau de compatibilité 1050 .

Vous trouverez des instructions pour l'affichage et la modification du script XMLA dans la section suivante.

Définir le niveau de compatibilité de la base de données dans SQL Server Management Studio

  1. Avant d'augmenter le niveau de compatibilité, sauvegardez la base de données au cas où vous souhaiteriez annuler les modifications apportées.

  2. À l’aide de SQL Server Management Studio, connectez-vous au serveur SQL Server 2017SQL Server Analysis Services qui héberge la base de données.

  3. Cliquez avec le bouton droit sur le nom de la base de données, pointez sur Générer un script de la base de données en tant que, sur ALTER To, puis sélectionnez Nouvelle fenêtre d’éditeur de requête. Une représentation XMLA de la base de données s'ouvre dans une nouvelle fenêtre.

  4. Copiez l'élément XML suivant :

    <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>  
    
  5. Collez-le après l'élément de fin </Annotations> et avant l'élément <Language> . Le XML doit ressembler à l'exemple suivant :

    </Annotations>  
    <ddl200:CompatibilityLevel>1100</ddl200:CompatibilityLevel>  
    <Language>1033</Language>  
    
  6. Enregistrez le fichier .

  7. Pour exécuter le script, cliquez sur Exécuter dans le menu Requête ou appuyez sur F5.

Opérations prises en charge qui requièrent le même niveau de compatibilité

Les opérations suivantes requièrent que les bases de données sources partagent le même niveau de compatibilité.

  1. La fusion de partitions de bases de données différentes est prise en charge uniquement si les deux bases de données partagent le même niveau de compatibilité.

  2. L'utilisation de dimensions liées d'une autre base de données requiert le même niveau de compatibilité. Par exemple, si vous souhaitez utiliser une dimension liée à partir d’une base de données SQL Server 2008 R2 dans une base de données SQL Server 2012 (11.x), vous devez porter la base de données SQL Server 2008 R2 vers un serveur SQL Server 2012 (11.x) et définir le niveau de compatibilité sur 1100.

  3. La synchronisation des serveurs est prise en charge uniquement pour les serveurs qui partagent la même version et le même niveau de compatibilité de base de données.

Étapes suivantes

Après avoir augmenté le niveau de compatibilité de la base de données, vous pouvez définir la propriété StringStoresCompatibilityLevel dans SQL Server Data Tools. Cela augmente le stockage des chaînes de mesures et de dimensions. Pour plus d’informations sur cette fonctionnalité, consultez Configurer le stockage de chaînes pour des dimensions et des partitions.

Voir aussi

Sauvegarde, restauration et synchronisation de bases de données (XMLA)