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 à: Azure Synapse Analytics pools SQL dédiés (anciennement SQL DW)
Dans Azure Synapse SQL, chaque table est distribuée à l’aide de la stratégie choisie par le client (Round Robin, Hash Distributed, Répliquée). La stratégie de distribution choisie peut affecter sensiblement les performances des requêtes.
La fonctionnalité Assistant Distribution (DA) d’Azure Synapse SQL analyse les requêtes client et recommande les meilleures stratégies de distribution pour les tables afin d’améliorer les performances des requêtes. Les requêtes à considérer par le conseiller peuvent être fournies par le client ou extraites des requêtes historiques disponibles dans DMV.
Note
Distribution Advisor est actuellement en préversion pour Azure Synapse Analytics. Les fonctionnalités en préversion sont destinées uniquement aux tests et ne doivent pas être utilisées sur les instances de production ou les données de production. En tant que fonctionnalité en préversion, l’Conseiller de distribution est soumis à des changements de comportement ou de fonctionnalité. Conservez également une copie de vos données de test si les données sont importantes. Distribution Advisor ne prend pas en charge les tables distribuées à plusieurs colonnes.
Prerequisites
Exécutez l’instruction
SELECT @@versionT-SQL pour vous assurer que votre pool SQL dédié Azure Synapse Analytics est la version 10.0.15669 ou ultérieure. Si votre version est inférieure, une nouvelle version doit atteindre automatiquement vos pools SQL dédiés provisionnés pendant leur cycle de maintenance.Assurez-vous que les statistiques sont disponibles et à jour avant d’exécuter le conseiller. Pour plus d’informations sur les statistiques, consultez les articles Gérer les statistiques des tables, CREATE STATISTICS et UPDATE STATISTICS.
Activez l’Conseiller de distribution Azure Synapse pour la session active avec la commande SET RECOMMENDATIONS T-SQL.
Analyser la charge de travail et générer des recommandations de distribution
Le tutoriel suivant explique l’exemple de cas d’utilisation de la fonctionnalité Conseiller de distribution pour analyser les requêtes des clients et recommander les meilleures stratégies de distribution.
Distribution Advisor analyse uniquement les requêtes exécutées sur les tables utilisateur.
1. Créer des procédures stockées de l'assistant de distribution
Pour exécuter facilement le conseiller, créez deux nouvelles procédures stockées dans la base de données. Exécutez le script CreateDistributionAdvisor_PublicPreview disponible pour le téléchargement à partir de GitHub :
| Commande | Description |
|---|---|
dbo.write_dist_recommendation |
Définit les requêtes sur lesquelles DA va effectuer une analyse. Vous pouvez fournir manuellement des requêtes ou lire jusqu’à 100 requêtes passées à partir des charges de travail réelles dans sys.dm_pdw_exec_requests. |
dbo.read_dist_recommendation |
Exécute le conseiller et génère des recommandations. |
Voici un exemple de la façon dont vous pouvez utiliser l'assistant.
2a. Exécuter le conseiller sur la charge de travail passée dans DMV
Exécutez les commandes suivantes pour lire jusqu’aux 100 dernières requêtes de la charge de travail pour obtenir des recommandations d’analyse et de distribution :
EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go
Pour voir quelles requêtes ont été analysées par DA, exécutez le script e2e_queries_used_for_recommendations.sql disponible pour le téléchargement à partir de GitHub.
2b. Exécuter le conseiller sur les requêtes sélectionnées
Le premier paramètre dans dbo.write_dist_recommendation doit être défini à 0, et le deuxième paramètre est une liste séparée par un point-virgule allant jusqu’à 100 requêtes que DA va analyser. Dans l’exemple ci-dessous, nous voulons voir la recommandation de distribution pour deux instructions séparées par des points-virgules et select count (*) from t1;select * from t1 join t2 on t1.a1 = t2.a1;.
EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go
3. Afficher les recommandations
La dbo.read_dist_recommendation procédure stockée système retourne des recommandations au format suivant lorsque l’exécution est terminée :
| Nom de la colonne | Description |
|---|---|
| Table_name | Table analysée par DA. Une ligne par table, quelle que soit la modification de la recommandation. |
| Current_Distribution | Stratégie de distribution de tableau actuelle. |
| Distribution_Recommandée | Distribution recommandée. Cela peut être le même que Current_Distribution s’il n’existe aucune modification recommandée. |
| Distribution_Change_Command | Commande CTAS T-SQL pour implémenter la recommandation. |
4. Mettre en œuvre les conseils
- Exécutez la commande CTAS fournie par Distribution Advisor pour créer de nouvelles tables avec la stratégie de distribution recommandée.
- Modifiez les requêtes à exécuter sur de nouvelles tables.
- Exécutez des requêtes sur les anciennes et nouvelles tables à comparer pour améliorer les performances.
Note
Pour nous aider à améliorer Le Conseiller de distribution, remplissez cette enquête rapide.
Résolution des problèmes
Cette section contient des scénarios de résolution des problèmes courants et des erreurs courantes que vous pouvez rencontrer.
1. État obsolète d’une exécution précédente du conseiller
1a. Symptôme:
Ce message d’erreur s’affiche lors de l’exécution du conseiller :
Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. Atténuation:
- Vérifiez que vous utilisez des guillemets simples '' pour exécuter le conseiller sur les requêtes sélectionnées.
- Démarrez une nouvelle session dans SSMS et exécutez le conseiller.
2. Erreurs lors de l’exécution du conseiller
2a. Symptôme:
Le volet « résultat » s’affiche CommandToInvokeAdvisorString ci-dessous, mais n’affiche pas le RecommendationOutput ci-dessous.
Par exemple, vous voyez uniquement l’ensemble de Command_to_Invoke_Distribution_Advisor résultats.
Mais pas le deuxième jeu de résultats contenant des commandes T-SQL de modification de table :
2b. Atténuation:
Vérifiez la sortie
CommandToInvokeAdvisorStringci-dessus.Supprimez les requêtes qui peuvent ne plus être valides, qui peuvent avoir été ajoutées ici à partir des requêtes sélectionnées manuellement ou de la DMV en modifiant
WHEREla clause dans : Requêtes considérées par DA.
3. Erreur lors du post-traitement de la sortie de recommandation
3a. Symptôme:
Le message d’erreur suivant s’affiche.
Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Atténuation:
Vérifiez que vous disposez de la version la plus récente de la procédure stockée à partir de GitHub :
Commentaires sur le groupe de produits Azure Synapse
Pour nous aider à améliorer Le Conseiller de distribution, remplissez cette enquête rapide.
Si vous avez besoin d’informations non fournies dans cet article, la page de questions Microsoft Q&A pour Azure Synapse est un endroit pour poser des questions à d’autres utilisateurs et au groupe de produits Azure Synapse Analytics.
Nous effectuons un suivi actif de ce forum pour vous assurer que vos questions sont répondues par un autre utilisateur ou l’un d’entre nous. Si vous préférez poser vos questions sur Stack Overflow, nous avons également un forum Azure Synapse Analytics Stack Overflow.
Pour les demandes de fonctionnalités, utilisez la page Commentaires d’Azure Synapse Analytics . L’ajout de vos demandes ou le vote d’autres demandes nous aide à nous concentrer sur les fonctionnalités les plus à la demande.
Étapes suivantes
- SET RECOMMENDATIONS (Transact-SQL)
- Chargement de données dans un pool SQL dédié
- Stratégies de chargement des données pour le pool SQL dédié dans Azure Synapse Analytics.
- Architecture de pool SQL dédié (anciennement SQL DW) dans Azure Synapse Analytics
- Aide-mémoire pour le pool SQL dédié (anciennement SQL DW) dans Azure Synapse Analytics