Réglage manuel dans Azure SQL Database et Azure SQL Managed Instance

S’applique à : Azure SQL Database Azure SQL Managed Instance

Le réglage automatique Azure SQL Database et Azure SQL Managed Instance fournit une optimisation des performances et une stabilisation des charges de travail grâce à un réglage continu des performances basé sur l'intelligence artificielle et l'apprentissage automatique.

Le réglage automatique est un service de performances intelligent entièrement géré qui utilise l’intelligence intégrée pour surveiller en continu les requêtes exécutées sur une base de données, dont il améliore automatiquement les performances. Pour cela, il adapte de manière dynamique une base de données à l’évolution des charges de travail et applique des recommandations de réglage. Le réglage automatique apprend horizontalement de toutes les bases de données sur Azure grâce à l’intelligence artificielle, et améliore ses actions de réglage de manière dynamique. Plus une base de données s’exécute avec le réglage automatique activé, meilleures sont ses performances.

Le réglage automatique Azure SQL Database et Azure SQL Managed Instance est peut-être l’une des fonctionnalités les plus importantes à activer pour fournir des charges de travail de base de données stables avec des performances optimales.

Le réglage automatique d’Azure SQL partage sa logique de base avec la fonctionnalité de réglage automatique de SQL Server dans le moteur de base de données. Pour obtenir des informations techniques supplémentaires sur le mécanisme d’intelligence intégré, consultez Réglage automatique dans SQL Server.

En quoi peut vous aider le réglage automatique ?

  • Réglage automatisé des performances des bases de données
  • Vérification automatisée des gains de performances
  • Restauration automatisée et correction automatique
  • Historique des réglages
  • Scripts Transact-SQL (T-SQL) d'action de réglage pour les déploiements manuels
  • Capacité de scale-out sur des centaines de milliers de bases de données
  • Impact positif sur les ressources de DevOps et le coût total de possession

Sûr, fiable et éprouvé

Les opérations de réglage appliquées aux bases de données n’affectent en rien les performances, même celles de vos charges de travail les plus lourdes. Le système a été conçu avec soin afin de ne pas interférer avec les charges de travail utilisateur. Les recommandations de réglage automatique sont appliquées uniquement pendant les périodes de faible utilisation de l’UC, des E/S de données et des E/S de journal. Le système peut également désactiver temporairement les opérations de réglage automatique afin de protéger les performances des charges de travail. Dans ce cas, le message « Désactivé par le système » s’affichera dans le portail Azure et dans la vue de gestion dynamique (DMV) sys.database_automatic_tuning_options. Le réglage automatique est conçu pour donner aux charges de travail utilisateur la priorité de ressource la plus élevée.

Les mécanismes de réglage automatique sont matures et ont été éprouvés sur des millions de bases de données exécutées sur Azure. Les opérations de réglage automatique appliquées sont vérifiées automatiquement afin de s’assurer qu’il y a une amélioration positive notable des performances de charge de travail. À défaut d’amélioration ou, dans le cas peu probable où les performances régressent, les modifications apportées par réglage automatique sont rapidement annulées. L’historique des réglages enregistré fournit une trace claire des améliorations de réglage apportées à chaque base de données dans Azure SQL Database.

Fonctionnement du réglage automatique

Activer le réglage automatique

Options de réglage automatique

Les options de réglage automatique disponibles dans Azure SQL Database et Azure SQL Managed Instance sont les suivantes :

Option de réglage automatique Description Prise en charge d’une base de données unique et d’une base de données mise en pool Prise en charge de la base de données d’instance
CREATE INDEX Identifie les index qui peuvent améliorer les performances de votre charge de travail, crée des index et vérifie automatiquement que les performances des requêtes sont améliorées. Lors de la recommandation d’un nouvel index, le système considère l’espace disponible dans la base de données. S’il est estimé que l’ajout d’index va augmenter l’utilisation de l’espace de plus de 90 % vers la taille maximale des données, la recommandation d’index n’est pas générée. Une fois que le système a identifié une période de faible utilisation et commencé à créer un index, il ne suspend ou n’annule pas cette opération, même si l’utilisation des ressources augmente de façon inattendue. Si la création d’index échoue, elle sera retentée pendant une période future de faible utilisation. Les recommandations d’index ne sont pas fournies pour les tables où l’index cluster ou le segment de mémoire est supérieur à 10 Go. Oui Non
DROP INDEX Supprime les index inutilisés (au cours des 90 derniers jours) et en double. Les index uniques, y compris les index qui prennent en charge les contraintes de clé primaire et uniques, ne sont jamais annulés. Cette option peut être automatiquement désactivée lorsque les requêtes avec conseils d’index sont présentes dans la charge de travail ou lorsque la charge de travail effectue le basculement de partition. Sur les niveaux de service Premium et critique pour l’entreprise, cette option ne supprimera jamais les index inutilisés, mais supprimera les index en double, le cas échéant. Oui Non
FORCE LAST GOOD PLAN (correction automatique du plan) Identifie les requêtes Azure SQL utilisant un plan d’exécution plus lent que le dernier plan correct, et force les requêtes à utiliser le dernier plan correct connu au lieu du plan régressé. Oui Oui

Réglage automatique pour SQL Database

Le réglage automatique Azure SQL Database utilise les recommandations de Database Advisor CREATE INDEX, DROP INDEX et FORCE_LAST_GOOD_PLAN pour optimiser les performances de votre base de données. Pour plus d’informations, consultez Recommandations des conseillers de base de données dans le portail Azure, dans PowerShell et dans l’API REST.

Vous pouvez appliquer manuellement les recommandations de réglage à l’aide du portail Azure ou laisser le réglage automatique les appliquer pour vous en toute autonomie. L’avantage de laisser le système appliquer de manière autonome les recommandations de réglage à votre place est qu’il valide automatiquement l’existence d’un gain des performances de la charge de travail et qu’à défaut de détection d’une amélioration significative des performances ou si les performances régressent, il annule automatiquement les modifications apportées. Selon la fréquence d’exécution des requêtes, le processus de validation peut prendre de 30 minutes à 72 heures, ce qui prend plus de temps pour les requêtes exécutées moins fréquemment. Si, à un moment donné durant la validation, une régression est détectée, les modifications sont annulées immédiatement.

Important

Si vous appliquez les recommandations de réglage via T-SQL, les mécanismes de validation automatique des performances et d’annulation ne sont pas disponibles. Les recommandations appliquées de cette manière resteront actives et figureront dans la liste des recommandations de réglage pendant 24 à 48 heures avant que le système ne les retire automatiquement. Si vous souhaitez supprimer une recommandation avant cela, vous pouvez l’abandonner dans le portail Azure.

Vous pouvez activer ou désactiver les options de réglage automatique indépendamment pour chaque base de données, ou les configurer au niveau du serveur et les appliquer sur chaque base de données qui hérite des paramètres du serveur. Par défaut, les nouveaux serveurs peuvent hériter de valeurs Azure par défaut pour les paramètres de réglage automatique. Les paramètres par défaut Azure sont FORCE_LAST_GOOD_PLAN activé, CREATE_INDEX désactivé, et DROP_INDEX désactivé.

La méthode recommandée pour la configuration du réglage automatique consiste à configurer les options de réglage automatique sur un serveur et à hériter des paramètres des bases de données appartenant au serveur parent. Elle simplifie la gestion des options de réglage automatique pour un grand nombre de bases de données.

Pour en savoir plus sur la création de notifications par e-mail pour les recommandations de réglage automatique, consultez Notifications par e-mail pour le réglage automatique.

Réglage automatique pour Azure SQL Managed Instance

Le réglage automatique SQL Managed Instance prend uniquement en charge FORCE LAST GOOD PLAN. Pour plus d’informations sur la configuration des options de réglage automatique par le biais de T-SQL, consultez Le réglage automatique introduit la correction de plan automatique et Correction de plan automatique.

Exemples à activer

Pour plus d’informations, consultez Options SET ALTER DATABASE.

Pour hériter de la configuration par défaut du serveur logique parent, utilisez l’instruction T-SQL suivante. Sur le Portail Azure, cela reflète l’option « Hériter de : Serveur ».

ALTER DATABASE CURRENT SET AUTOMATIC_TUNING = INHERIT;

Pour activer les options de réglage automatique CREATE INDEX et DROP INDEX, utilisez l’instruction T-SQL suivante.

ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (CREATE_INDEX = ON, DROP_INDEX = ON);

Historique de réglage automatique

Pour Azure SQL Database, l’historique des modifications apportées par le réglage automatique est conservé pendant 21 jours. Il peut être consulté dans le portail Azure sur la page Recommandations en matière de performances pour une base de données, ou à l’aide de PowerShell avec la cmdlet Get-AzSqlDatabaseRecommendedAction. Pour une conservation plus longue, les données d’historique peuvent également être diffusées en continu vers plusieurs types de destinations en activant le paramètre de diagnostic AutomaticTuning.