É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 :

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. Connectez-vous au portail Azure et accédez à votre ressource de machine virtuelle SQL Server.
  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 Server 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, nouveau, résolu. Utilisez ces onglets pour afficher toutes les recommandations de l’exécution en cours, toutes les nouvelles recommandations (delta des séries précédentes) ou les recommandations résolues à partir des exécutions précédentes. Les onglets vous aident à suivre la progression entre les exécutions. L’onglet Insights identifie les problèmes récurrents et les bases de données présentant le plus grand nombre de problèmes. Utilisez-les pour déterminer les points sur lesquels concentrer vos efforts.

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. Cette liste peut ê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 de Microsoft Monitoring Agent (MMA) vers l’agent Azure Monitor (AMA)

Auparavant, la fonctionnalité d’évaluation des meilleures pratiques SQL utilisait MMA pour charger les évaluations dans l’espace de travail Log Analytics. Or, MMA est actuellement en phase de mise hors service. Cette fonctionnalité utilise désormais AMA pour charger les évaluations. Si vous avez activé l’évaluation des meilleures pratiques SQL à l’aide de MMA par le passé, vous pouvez facilement migrer vers AMA d’abord en désactivant la fonctionnalité, puis en la réactivant. Vos résultats existants seront toujours disponibles après l’opération de désactivation/activation tant que vous spécifierez le même espace de travail Log Analytics. S’il n’est pas utilisé par d’autres services, vous pouvez à ce stade supprimer Microsoft Monitoring Agent en suivant ces instructions. 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 en vous servant de ce tableau lié.

Échec du déploiement pour Activer ou Exécuter l’évaluation

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é.

Échecs d’évaluation

Si l’évaluation ou le chargement des résultats échouent pour une raison quelconque, l’état de l’évaluation indique un échec. Cliquez sur l’état pour ouvrir un volet contextuel dans lequel vous pouvez voir les détails sur l’échec et les méthodes possibles pour y remédier.

Conseil

Si vous avez appliqué TLS 1.0 ou une version ultérieure dans Windows et désactivé les anciens protocoles SSL comme décrit ici, vous devez également vous assurer que .NET Framework est configuré pour utiliser un chiffrement fort.

Étapes suivantes