Partager via


Évaluation des meilleures pratiques SQL pour SQL Server sur les machines virtuelles Azure

S’applique à : SQL Server sur la machine virtuelle Azure

La fonctionnalité d’évaluation des meilleures pratiques SQL du portail Azure identifie les problèmes de performances potentiels et évalue votre instance SQL Server sur les machines virtuelles Azure pour s’assurer qu’elle est configurée conformément aux meilleures pratiques à l’aide de l’ensemble de règles enrichi fourni par l’API d’évaluation SQL Assessment.

Pour en savoir plus, regardez cette vidéo sur l’évaluation des meilleures pratiques SQL :

Vue d’ensemble

Une fois la fonctionnalité d’évaluation des meilleures pratiques SQL activée, votre instance et vos bases de données SQL Server sont analysées pour fournir des recommandations relatives à des éléments, comme les index, les fonctionnalités dépréciées, les indicateurs de trace activés ou manquants, les statistiques, etc. Les recommandations sont exposées à la page de gestion des machines virtuelles SQL du portail Azure.

Les résultats de l’évaluation sont chargés dans votre espace de travail Log Analytics à l’aide de l’agent Azure Monitor (AMA). L’extension AMA est installée sur la machine virtuelle SQL Server, si ce n’est pas déjà le cas, et les ressources AMA telles que DCE et DCR sont créées et connectées à l’espace de travail Log Analytics spécifié.

Le temps d’exécution de l’évaluation dépend de votre environnement (nombre de bases de données, objets, etc.), avec une durée de quelques minutes (une heure maximum). De même, la taille du résultat de l’évaluation dépend également de votre environnement. L’évaluation est exécutée sur votre instance et sur toutes les bases de données sur cette instance. Dans le cadre de nos tests, nous avons observé que l’exécution de l’évaluation peut avoir un impact sur le processeur pouvant atteindre 5 à 10% sur la machine. Dans ces tests, l’évaluation a été effectuée pendant l’exécution d’une application de type TPC-C sur SQL Server.

Prérequis

Pour utiliser la fonctionnalité d’évaluation des meilleures pratiques SQL, vous avez besoin des prérequis suivants :

autorisations

Pour activer les évaluations des meilleures pratiques SQL, vous avez besoin des autorisations suivantes :

  • Contributeur de machines virtuelles sur la ressource de machine virtuelle sous-jacente.
  • Contributeur de machines virtuelles sur la ressource de machines virtuelles SQL.
  • Contributeur Log Analytics sur le groupe de ressources qui contient l'espace de travail Log Analytics.
  • Lecteur sur le groupe de ressources où les ressources de l’agent Azure Monitor sont créées. Vérifiez l’option de configuration du groupe de ressources lorsque vous activez la fonctionnalité d’évaluation des meilleures pratiques SQL.

Activer

Vous pouvez activer les évaluations des meilleures pratiques SQL à l’aide du portail Azure ou d’Azure CLI.

Pour activer les évaluations des meilleures pratiques SQL à l’aide du portail Azure, procédez comme suit :

  1. Accédez à votre ressource de machines virtuelles SQL dans le portail Azure.
  2. Sélectionnez Évaluations des meilleures pratiques SQL sous Paramètres.
  3. Sélectionnez Activer les évaluations des meilleures pratiques SQL ou Configuration pour accéder à la page Configuration.
  4. Cochez la case Activer les évaluations des meilleures pratiques SQL et fournissez les informations suivantes :
    1. Espace de travail log Analytics sur lequel les évaluations sont chargées. Choisissez un espace de travail existant dans l’abonnement dans la liste déroulante.
    2. Choisissez le groupe de ressources dans lequel les ressources DCE et DCR de l’agent Azure Monitor seront créées. Si vous spécifiez le même groupe de ressources sur plusieurs machines virtuelles SQL Server, ces ressources sont réutilisées.
    3. Calendrier d’exécution. Vous pouvez choisir d’exécuter des évaluations à la demande ou automatiquement selon une planification. Si vous choisissez une planification, indiquez la fréquence (hebdomadaire ou mensuelle), le jour de la semaine, la périodicité (toutes les 1 à 6 semaines) et l’heure de la journée à laquelle les évaluations doivent démarrer (heure locale à machine virtuelle).
  5. Sélectionnez Appliquer pour enregistrer vos modifications et déployer l’agent Azure Monitor sur votre machine virtuelle SQL Server si ce n’est pas déjà le cas. Une notification du portail Azure vous informe une fois que la fonctionnalité d’évaluation des meilleures pratiques SQL est prête pour votre machine virtuelle SQL Server.

Évaluer la machine virtuelle SQL Server

Exécution des évaluations :

  • Selon une planification
  • À la demande

Exécuter une évaluation planifiée

Vous pouvez configurer une évaluation planifiée à l’aide du portail Azure et d’Azure CLI.

Si vous définissez un calendrier dans le volet de configuration, une évaluation s'exécute automatiquement à la date et à l'heure spécifiées. Choisissez Configuration pour modifier votre calendrier d’évaluation. Une fois que vous avez fourni une nouvelle planification, la planification précédente est remplacée.

Exécuter une évaluation à la demande

Une fois la fonctionnalité d’évaluation des meilleures pratiques SQL activée pour votre machine virtuelle SQL Server, il est possible d’effectuer une évaluation à la demande à l’aide du portail Azure ou d’Azure CLI.

Pour exécuter une évaluation à la demande à l’aide du portail Azure, sélectionnez Exécuter l’évaluation dans le volet d’évaluation des meilleures pratiques SQL de la page Ressources de machine virtuelle SQL du portail Azure.

Afficher les résultats

La section Résultats des évaluations de la page Évaluation des meilleures pratiques SQL affiche une liste des exécutions de l’évaluation les plus récentes. Chaque ligne affiche l’heure de début d’une exécution et l’état : planifié, en cours d’exécution, chargement des résultats, terminés ou échec. Chaque exécution d’évaluation se compose de deux parties : évaluation de votre instance et chargement des résultats dans votre espace de travail Log Analytics. Le champ d’état couvre les deux parties. Les résultats de l’évaluation s’affichent dans les classeurs Azure.

Accédez au classeur Azure de résultats de l’évaluation de trois manières :

  • Sélectionnez le bouton Afficher l’évaluation réussie la plus récente sur la page Évaluations des meilleures pratiques SQL.
  • Choisissez une exécution terminée dans la section Résultats de l’évaluation de la page Évaluations des meilleures pratiques SQL.
  • Sélectionnez Afficher les résultats de l’évaluation dans les 10 premières recommandations exposées dans la page Vue d’ensemble de la page des ressources de votre machine virtuelle SQL.

Une fois le classeur ouvert, vous pouvez utiliser la liste déroulante pour sélectionner les exécutions précédentes. Vous pouvez afficher les résultats d’une exécution unique à l’aide de la page Résultats ou passer en revue les tendances historiques à l’aide de la page Tendances.

Page de résultats

La page Résultats organise les recommandations à l’aide d’onglets pour :

  • Tout : toutes les recommandations de l’exécution actuellement sélectionnée
  • Nouveautés : Nouvelles recommandations (delta des exécutions précédentes)
  • Résolu : recommandations résolues des exécutions précédentes
  • Insights : identifie les problèmes récurrents et les bases de données présentant le plus grand nombre de problèmes.

Les résultats de l’évaluation des groupes de graphiques présentent les niveaux de gravité : élevé, moyen et faible, ainsi que des informations. Sélectionnez chaque catégorie pour afficher la liste des recommandations ou recherchez des expressions clés dans la zone de recherche. Il est préférable de commencer par les recommandations les plus graves et de descendre dans la liste.

La première grille vous montre chaque recommandation et le nombre d’instances de votre environnement concernées par ce problème. Quand vous sélectionnez une ligne dans la première grille, la deuxième grille répertorie l’ensemble des instances pour cette recommandation particulière. Si aucune sélection n’est effectuée dans la première grille, la deuxième grille affiche toutes les recommandations dont la liste pourrait être longue. Vous pouvez utiliser les listes déroulantes au-dessus de la grille (Nom, Gravité, Balises, ID de contrôle) pour filtrer les résultats. Vous pouvez également utiliser les options Exporter vers Excel et Ouvrir la dernière requête exécutée dans la vue Journaux en sélectionnant les petites icônes en haut à droite de chaque grille.

La section Réussi du graphique identifie les recommandations que votre système applique déjà.

Affichez des informations détaillées pour chaque recommandation en sélectionnant le champ Message, par exemple une description longue, ainsi que les ressources en ligne pertinentes.

Vous trouverez trois graphiques dans la page Tendances pour afficher les modifications dans le temps : ensemble des problèmes, nouveaux problèmes et problèmes résolus. Les graphiques vous aident à observer votre progression. Dans l’idéal, le nombre de recommandations doit diminuer, tandis que le nombre de problèmes résolus doit augmenter. La légende indique le nombre moyen de problèmes pour chaque niveau de gravité. Pointez sur les barres pour afficher les valeurs individuelles de chaque exécution.

Si plusieurs exécutions sont effectuées en une seule journée, seule la dernière exécution est incluse dans les graphiques de la page Tendances.

Activer toutes les machines virtuelles d’un abonnement

Vous pouvez utiliser Azure CLI pour activer la fonctionnalité d’évaluation des meilleures pratiques SQL sur toutes les machines virtuelles SQL Server au sein d’un abonnement. Pour ce faire, utilisez l’exemple de script suivant :

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.
 
$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
# Resource Group where the Azure Monitor Agent resources will be created
$myAgentRg = 'myAgentRg'
 
# Ensure in correct subscription
az account set --subscription $subscriptionId
 
$sqlvms = az sql vm list | ConvertFrom-Json 
 
foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name
  
  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name  
 
  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

Problèmes connus

Vous pouvez rencontrer certains des problèmes connus suivants lors de l’utilisation des évaluations des meilleures pratiques SQL.

Migration vers Azure Monitor Agent (AMA)

Auparavant, la fonctionnalité d’évaluation des meilleures pratiques SQL utilisait MMA pour charger les évaluations dans l’espace de travail Log Analytics. L’agent Microsoft Monitoring a été remplacé par l’agent Azure Monitor (AMA). Pour migrer des évaluations existantes des meilleures pratiques SQL de MMA vers AMA, vous devez supprimer , puis enregistrer votre machine virtuelle SQL Server à nouveau avec l’extension. Vos résultats existants seront toujours disponibles une fois les évaluations activées. Si le MMA n’est pas utilisé par d’autres services, vous pouvez le supprimer. Avant de migrer, assurez-vous qu’Azure Monitor Log Analytics est pris en charge dans la région où réside votre machine virtuelle SQL Server.

Échec de l’activation des évaluations

Reportez-vous à l’historique de déploiement du groupe de ressources qui contient la machine virtuelle SQL pour afficher le message d’erreur associé à l’action qui a échoué.

Échec de l’exécution d’une évaluation

Vérifiez l’état de l’exécution de l’évaluation dans le Portail Azure. Si l’état a échoué, sélectionnez l’état pour afficher le message d’erreur. Vous pouvez également vous connecter à la machine virtuelle et passer en revue les messages d’erreur détaillés pour les évaluations ayant échoué dans le journal des extensions à C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Y, où 2.0.X.Y est la version de l’extension.

Si vous rencontrez des problèmes lors de l’exécution d’une évaluation :

  • Assurez-vous que votre environnement répond aux prérequis.
  • Vérifiez que le service SQL IaaS Agent s’exécute sur la machine virtuelle et que l’extension SQL IaaS Agent est dans un état sain. Si l’extension SQL IaaS Agent n’est pas saine, réparez l’extension pour résoudre les problèmes et mettez-la à niveau vers la dernière version sans aucun temps d’arrêt SQL Server.
  • Si vous constatez des échecs de connexion pour NT SERVICE\SqlIaaSExtensionQuery, vérifiez que ce compte est ajouté à SQL Server avec les autorisations Server permission - CONTROL SERVER.

Échec du chargement des résultats dans l’espace de travail Log Analytics

Cette erreur indique que Microsoft Monitoring Agent (MMA) n’a pas pu charger les résultats dans le délai attendu.

Si vos résultats ne parviennent pas à être téléchargés dans l’espace de travail Log Analytics, essayez ce qui suit :

Erreurs avec une configuration TLS incorrecte lors de l’utilisation de Log Analytics

L’erreur TLS la plus courante se produit lorsque l’extension Microsoft Monitoring Agent (MMA) ne peut pas établir de liaison SSL lors de la connexion au point de terminaison Log Analytics, ce qui se produit généralement lorsque TLS 1.0 est appliqué par le Registre ou l’objet de stratégie de groupe au niveau du système d’exploitation, mais pas mis à jour pour le .NET Framework. Si vous avez appliqué TLS 1.0 ou ultérieur dans Windows et désactivé les protocoles SSL plus anciens, comme décrit dans Clés de Registre propres à Schannel, vous devez aussi vérifier que .NET Framework est configuré pour utiliser un chiffrement fort.

Impossible de changer l’espace de travail Log Analytics après la configuration de SQL Assessment

Une fois qu’une machine virtuelle est associée à un espace de travail Log Analytics, celui-ci ne peut plus être changé à partir de la ressource de machine virtuelle SQL. Ceci permet d’empêcher l’utilisation de Log Analytics pour d’autres cas d’usage. Vous pouvez déconnecter la machine virtuelle en utilisant la lame de ressource Log Analytics sur la page Machines virtuelles du portail Azure.

Le résultat a expiré en raison de la conservation des données de l’espace de travail Log Analytics

Ceci indique que les résultats ne sont plus conservés dans l’espace de travail Log Analytics, conformément à sa Stratégie de rétention. Vous pouvez modifier la période de conservation de l’espace de travail.