J'optimise les performances d'un entrepôt de données à l'aide d'index. Je suis assez nouveau sur SQL Server 2014.Microsoft décrit ce qui suit:
"Nous considérons l'index clusterstore clusterstore comme la norme pour le stockage de grandes tables de faits d'entreposage de données, et nous nous attendons à ce qu'il soit utilisé dans la plupart des scénarios d'entreposage de données. Étant donné que l'index clusterstore columnstore peut être mis à jour, votre charge de travail peut effectuer un grand nombre d'insertions, de mises à jour, et supprimer des opérations. " http://msdn.microsoft.com/en-us/library/gg492088.aspx
Cependant, si vous lisez plus loin dans la documentation, vous trouverez sous limitations et restrictions:
"Impossible d'avoir des contraintes uniques, des contraintes de clé primaire ou des contraintes de clé étrangère."
Cela me déroute beaucoup! C'est une bonne pratique (non obligatoire) d'avoir des clés étrangères dans l'entrepôt de données pour diverses raisons (intégrité des données, relations visibles pour la couche sémantique ...)
Microsoft préconise donc des index clusterstore groupés pour les scénarios d'entrepôt de données; cependant, il ne peut pas gérer les relations de clé étrangère?!
Ai-je raison là-dessus? Quelles autres approches conseilleriez-vous? Dans le passé, j'ai utilisé un index columnstore non clusterisé dans des scénarios d'entrepôt de données, avec suppression et reconstruction pour les chargements de données. Cependant, SQL Server 2014 n'ajoute alors aucune réelle nouvelle valeur pour les entrepôts de données ??