Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2016 (13.x) et versions
ultérieures d’Azure SQL Managed Instance
Cet article aborde des considérations spécifiques de performance lorsque vous utilisez des tables temporelles optimisées pour la mémoire version système.
L’ajout du contrôle de version à une table non temporelle a un impact sur les opérations de mise à jour et de suppression, car la table historique est mise à jour automatiquement.
Considérations relatives aux performances
Chaque mise à jour et suppression est enregistrée dans une table d’historique mémoire optimisée interne. Vous pourriez subir une consommation de mémoire inattendue si votre charge de travail utilise beaucoup ces deux opérations. Tenez compte des éléments suivants :
N’effectuez pas de suppressions massives de la table actuelle en une seule étape. Envisagez la suppression des données par lots, avec un vidage manuel des données entre chaque lot, à l’aide de sp_xtp_flush_temporal_history, ou lors de
SYSTEM_VERSIONING = OFF.Ne réalisez pas de mises à jour massives de tables en même temps, car cela peut consommer deux fois plus de mémoire nécessaire pour mettre à jour une table non optimisée en mémoire temporelle. Ce doublement de la consommation de mémoire est temporaire, car la tâche de vidange des données fonctionne régulièrement pour maintenir la consommation de mémoire des tables de stockage internes dans les limites prévues en régime permanent. La limite est de 10 % de la consommation de mémoire de la table temporelle actuelle. Envisagez d’effectuer des mises à jour massives en plusieurs lots ou pendant
SYSTEM_VERSIONING = OFF, comme pour définir les valeurs par défaut des nouvelles colonnes ajoutées.
La période d'activation de la tâche de nettoyage des données n'est pas configurable, mais vous pouvez exécuter manuellement sp_xtp_flush_temporal_history si nécessaire.
Envisagez d’utiliser un stockage de colonnes en cluster comme option de stockage pour une table d’historique basée sur disque, surtout si vous prévoyez d’effectuer des requêtes analytiques sur des données historiques utilisant des fonctions d’agrégat ou de fenêtrage. Dans ce cas, un index columnstore clusterisé constitue un choix optimal pour votre table d’historique. Les index columnstore en cluster fournissent une bonne compression des données et se comportent de manière conviviale, en s’alignant sur la façon dont les données d’historique sont générées.
Contenu connexe
- Tables temporelles à versionnement géré par le système avec tables optimisées en mémoire
- Créer une table temporelle versionnée par le système et optimisée en mémoire
- Utiliser des tables temporelles versionnées par le système et optimisées en mémoire
- Surveiller les tables temporelles versionnées par le système et optimisées en mémoire
- Tables temporelles
- Vérifications de cohérence système des tables temporelles
- Gérer la conservation des données historiques dans les tables temporelles versionnées par le système
- Vues et fonctions des métadonnées des tables temporelles