

- Description
- Calculatrice mécanique ancienne à leviers, à curseurs et à rangées de touches, exposée dans une vitrine.
- Source
- Daderot · page d’origine
- Licence
- CC0 Domaine public
SQL Server en SaaS — contribution de l'IA
Vous saurez où l'IA aide réellement dans une chaîne Azure SQL → Power BI : écriture et optimisation de T-SQL, DAX, analyse de plans, diagnostic, documentation, détection d'anomalies, réglage…
En bref
- Vous saurez où l'IA aide réellement dans une chaîne Azure SQL → Power BI : écriture et optimisation de T-SQL, DAX, analyse de plans, diagnostic, documentation, détection d'anomalies, réglage automatique du moteur.
- Vous disposerez de notes /5 (gain, risque, maturité) par cas d'usage, avec prérequis et garde-fous.
- Vous aurez des prompts types, et la liste de ce que l'IA ne remplace pas.
- Les noms de produits et leur statut (aperçu, disponibilité générale) évoluent vite : chaque point volatil est marqué « état 2026-10 » ou « à vérifier ». Cadre : vue d'ensemble.
Sur cette page
- Deux familles d'IA à ne pas confondre
- Copilot dans les outils SQL
- Copilot dans Power BI
- T-SQL et DAX : génération et optimisation
- Plans d'exécution et diagnostic
- Intelligence intégrée au moteur
- Documentation et métadonnées automatiques
- Tableau gain, risque, maturité
- Garde-fous
- Prompts d'exemple
- Ce que l'IA ne remplace pas
- Voir aussi
Niveau : 🟢→🔴
Deux familles d'IA à ne pas confondre#
🟢 Novice — Assistant ou moteur ?#
- L'IA assistante : vous écrivez une consigne en langage naturel, un modèle de langage (Copilot, un agent) produit du texte (SQL, DAX, explication). Vous relisez et décidez. Risque principal : l'hallucination plausible.
- L'IA embarquée dans le moteur : le service Azure SQL observe sa charge et agit (créer/supprimer un index, forcer un plan, détecter une anomalie de performance). Ce sont des algorithmes d'apprentissage automatique appliqués à la télémétrie, avec un cycle de validation (essai, mesure, annulation). Risque principal : une action automatique non comprise.
La première demande de la vigilance de relecture, la seconde de la supervision. Le reste du dossier distingue ces deux régimes.
Copilot dans les outils SQL#
🟡 Pratique — Où on le trouve (état 2026-10)#
| Outil | Ce que fait l'assistant | Statut / remarque |
|---|---|---|
| SQL Server Management Studio (SSMS) | Dialogue sur la base connectée : expliquer une requête, générer du T-SQL à partir de la description, aider au diagnostic ; s'appuie sur GitHub Copilot | Intégré dans SSMS 22 (GitHub Copilot en disponibilité générale annoncée en mars 2026 ; le mode agent reste en aperçu ; vérifier la version installée et les licences GitHub Copilot) |
Extension mssql de Visual Studio Code |
Complétion et chat avec GitHub Copilot connaissant le schéma de la connexion | Évolue rapidement ; à vérifier |
| Portail Azure — Copilot dans Azure | Aide au dimensionnement, à la compréhension des métriques, au dépannage (ex. « pourquoi cette base consomme-t-elle autant de DTU ? ») | Selon le locataire et l'activation par l'administrateur ; à vérifier |
| Éditeur de requêtes du portail / Fabric | Génération et correction de requêtes sur la base | Dans l'éditeur SQL de Fabric et de SQL database in Fabric ; état à vérifier |
| GitHub Copilot (IDE, CLI) | Écriture de scripts de déploiement, de pipelines, de tests | Générique : n'a pas le contexte de votre base sauf à le lui donner |
(Azure Data Studio est retiré depuis le 28 février 2026 ; l'extension mssql de VS Code et SSMS reprennent ses usages.)
Donnez à l'assistant le schéma (DDL des tables concernées, cardinalités, index existants, convention de nommage), pas seulement la question. Une requête générée sans schéma est un brouillon ; avec schéma + règles de l'équipe, c'est un premier jet exploitable.
Symptôme : la requête générée référence des colonnes inexistantes ou ignore la gestion des accents. Cause : hallucination, schéma non fourni. Remède : fournir le DDL, exiger d'utiliser uniquement les objets listés, exécuter d'abord en lecture seule sur un environnement de développement.
Les assistants intégrés envoient du contexte (extraits de schéma, requêtes, parfois résultats) à un service cloud. Pour les environnements contenant des données personnelles, vérifier ce qui est transmis, les engagements contractuels de non-entraînement et les options de désactivation, avant généralisation (voir sécurité, confidentialité, conformité).
Copilot dans Power BI#
🟡 Pratique — Ce qui est proposé (état 2026-10, à vérifier)#
- Copilot dans les rapports : résumé d'un rapport, création de pages et de visuels à partir d'une consigne, requêtes en langage naturel sur le modèle, explication des visuels. Nécessite une capacité payante Fabric/Premium d'une taille minimale et l'activation par l'administrateur du locataire (la liste des références éligibles évolue ; à vérifier).
- Copilot dans la création de mesures DAX : suggestion de mesures, explication d'une mesure existante, rédaction de descriptions.
- Préparation du modèle pour l'IA : description du modèle, synonymes, exemples de questions, « schéma IA » indiquant à l'assistant quelles tables et champs utiliser (les noms et fonctionnalités changent ; à vérifier). C'est le levier de qualité n° 1 : un modèle propre, nommé et documenté donne de bonnes réponses.
- Questions-réponses en langage naturel et agents de données sur un modèle/lakehouse : intéressants pour l'exploration, rarement acceptables pour des chiffres engageants sans validation.
La qualité de Copilot dépend de la qualité des métadonnées : noms métier lisibles, descriptions de tables et de mesures, colonnes inutiles masquées, relations correctes, traductions. C'est exactement ce que recommande de toute façon la matrice BI (modèle sémantique) : l'IA récompense l'hygiène, elle ne la remplace pas.
Symptôme : deux utilisateurs obtiennent des chiffres différents pour la « même » question. Cause : formulation ambiguë, mesure choisie différemment, RLS différente selon le profil. Remède : mesures certifiées et nommées sans ambiguïté, instructions au modèle (« le chiffre d'affaires est la mesure [CA net] »), contrôle par la recette de chiffres, et mention visible que la réponse est générée par IA.
T-SQL et DAX : génération et optimisation#
🟡 Pratique — Cas d'usage#
| Cas d'usage | Ce que l'IA fait bien | Ce qu'elle fait mal |
|---|---|---|
| Écrire une requête d'agrégation simple | Rapide, correcte si schéma fourni | Ignore les conventions maison, les NULL métier |
Réécrire une requête lente (NOT IN → NOT EXISTS, sous-requêtes corrélées, fonctions sur colonnes) |
Reconnaît les anti-patrons classiques | Peut changer la sémantique (NULL, doublons) sans le dire |
| Convertir boucle/curseur en ensemble | Bonne idée générale | Perd parfois l'ordre, les effets de bord |
| Écrire du DAX (mesure simple, temps) | Bon sur les motifs connus (CALCULATE, DATESYTD) |
Confond contexte de ligne/de filtre, abuse d'itérateurs, crée des relations implicites |
| Optimiser du DAX | Propose variables (VAR), évite les itérations inutiles |
Sans mesure (DAX Studio), le gain est supposé |
| Générer des tests (cas limites, jeux de données) | Très utile pour l'imagination des cas | Ne connaît pas les règles métier cachées |
Symptôme : la requête « optimisée » est 10 fois plus rapide mais renvoie 3 % de lignes en moins. Cause : transformation changeant la gestion des NULL ou des doublons (ex. NOT IN vs NOT EXISTS). Remède : tester l'équivalence : comparer EXCEPT dans les deux sens, totaux, comptes par clé ; ne jamais accepter une réécriture sur la seule foi de la durée.
-- Contrôle d'équivalence entre l'ancienne et la nouvelle requête
SELECT * FROM (ancienne) a EXCEPT SELECT * FROM (nouvelle) n;
SELECT * FROM (nouvelle) n EXCEPT SELECT * FROM (ancienne) a;
-- Les deux résultats doivent être vides (à lancer sur un jeu de données représentatif)
Une mesure DAX générée pour « part de marché sur les produits relevés » utilise FILTER(ALL(Table), ...) partout, correcte mais lente. La revue y substitue un filtre de colonne dans CALCULATE (plus rapide) : le gain est vérifié dans l'analyseur de performance, et l'égalité des totaux est contrôlée par rôle RLS.
Voir aussi la matrice BI sur les mesures et calculs DAX.
Plans d'exécution et diagnostic#
🟡 Pratique — L'IA lit les plans#
Coller un plan d'exécution XML (ou son texte) dans un assistant permet d'obtenir une explication opérateur par opérateur, un repérage des anomalies (estimation de lignes très éloignée du réel, key lookup massif, spill dans tempdb, scan alors qu'une recherche est possible, conversion implicite) et une liste d'hypothèses. C'est un excellent accélérateur pour juniors et un gain de temps pour les experts, à condition de vérifier chaque hypothèse sur le plan réel (SET STATISTICS XML ON ou Query Store).
Diagnostic des attentes : coller le résultat de sys.dm_exec_session_wait_stats/sys.dm_db_wait_stats et le profil de ressources aide à classer le goulot (CPU, IO, journal, verrou).
Fournissez le plan réel (pas l'estimé) et les statistiques de temps/IO ; demandez « quelles hypothèses, classées par probabilité, et quelle mesure confirmerait chacune ». Évitez « corrige-moi ça » qui conduit à des recommandations non vérifiables.
🔴 Expert — Boucle d'amélioration sûre#
- Capturer la requête et son plan dans Query Store (référence).
- Soumettre le plan à l'assistant ; obtenir 2–3 hypothèses.
- Tester chaque hypothèse séparément, en alternance, sur environnement dédié, en CPU et lectures logiques (protocole de mesure).
- Contrôler l'équivalence des résultats.
- Déployer via le kit/pipeline habituel avec revue ; consigner le gain dans le suivi des changements.
Intelligence intégrée au moteur#
🟡 Pratique — Réglage automatique et détection#
- Réglage automatique (Automatic Tuning) d'Azure SQL Database :
FORCE_LAST_GOOD_PLAN(annule une régression de plan détectée par Query Store), recommandations et (selon activation) application automatique de création/suppression d'index (CREATE_INDEX,DROP_INDEX) avec validation et retour arrière si la charge se dégrade. Activation par base ; le forçage de plan est généralement sûr, la gestion automatique d'index demande davantage de prudence (index créés non versionnés dans votre code → écart entre environnements ; coût de maintenance). - Recommandations de performance du portail (index manquants/inutiles, requêtes coûteuses) : issues de la télémétrie, à traiter comme des suggestions.
- Intelligent Insights / détection d'anomalies de performance et alertes basées sur des métriques (CPU, IO, workers) : en aperçu ou en évolution, à vérifier ; utile pour passer d'une supervision par seuil fixe à une détection d'écarts.
- Microsoft Defender for SQL : évaluation de vulnérabilités et détection d'activités anormales (injection, accès inhabituels), un autre cas d'IA embarquée, côté sécurité.
- Traitement de requêtes intelligent (famille IQP) : feedback d'allocation de mémoire, optimisation de plan sensible aux paramètres, jointures adaptatives, selon le niveau de compatibilité. Pas de « magie » : ce sont des mécanismes d'apprentissage dans l'optimiseur, qui exigent un niveau de compatibilité suffisant (voir piège 27).
Symptôme : un index inconnu apparaît en production et ralentit la consolidation. Cause : création d'index automatique activée, non répercutée dans le code source ni dans les kits. Remède : si l'option est utilisée, rapatrier les index acceptés dans le code (revue hebdomadaire des recommandations) ; sinon la désactiver et traiter les recommandations comme des tâches.
Activer FORCE_LAST_GOOD_PLAN presque partout (faible risque, fort bénéfice) ; traiter les créations d'index automatiques comme recommandations versionnées plutôt que comme actions sauvages.
Documentation et métadonnées automatiques#
🟡 Pratique — Documenter à moindre coût#
L'IA génère de bons premiers jets de descriptions pour des tables et colonnes à partir du schéma, des noms et d'échantillons : descriptions de mesures DAX, commentaires de colonnes, dictionnaires de données, synonymes pour Copilot, traductions de libellés (anglais, espagnol…). Dans un datamart dont les métadonnées sont portées par des propriétés étendues SQL (description, source, libellé), un script peut produire des propositions, qu'un humain valide avant écriture.
Cas d'usage voisins : génération de schémas Mermaid de lignage à partir des dépendances (sys.sql_expression_dependencies), résumé de changements entre deux versions du datamart, notes de version à partir des différences de schéma.
Symptôme : descriptions élégantes mais fausses (« Chiffre d'affaires hors taxes » pour un montant en fait taxes incluses). Cause : l'IA déduit du nom, pas du sens métier. Remède : validation par le propriétaire de la donnée ; marquer les descriptions « proposition IA, validée par X le AAAA-MM-JJ » dans la métadonnée ; ne jamais écrire en masse sans revue. Voir métadonnées, lignage et documentation.
Traductions : l'IA est efficace pour traduire des libellés courts, mais le vocabulaire métier (« linéaire », « facing », « relevé ») peut être mal rendu ; fournir un glossaire et faire relire par un locuteur métier, surtout pour des rapports multilingues contractuels.
Tableau gain, risque, maturité#
Appréciations d'expert, contextuelles (équipe de 3 à 8 personnes, projet de reporting d'entreprise sur Azure SQL + Power BI ; voir NOTATION). Risque : 5 = risque élevé ; maturité : 5 = pratique éprouvée.
| Cas d'usage | Gain | Risque | Maturité | Prérequis | Garde-fous |
|---|---|---|---|---|---|
| Génération de T-SQL simple avec schéma fourni | 4/5 | 2/5 | 4/5 | DDL, conventions | Revue, exécution en lecture seule sur dev |
| Réécriture de T-SQL pour performance | 3/5 | 4/5 | 3/5 | Plan réel, jeu de test | Équivalence EXCEPT, mesure CPU/lectures |
| Explication de plan d'exécution | 4/5 | 2/5 | 4/5 | Plan réel XML | Vérifier chaque hypothèse |
| Écriture de mesures DAX | 3/5 | 3/5 | 3/5 | Modèle documenté, mesures de référence | Test de totaux par rôle, revue |
| Optimisation DAX | 3/5 | 3/5 | 3/5 | DAX Studio, métriques | Mesurer avant/après |
| Copilot Power BI (exploration, résumés) | 3/5 | 3/5 | 3/5 | Capacité éligible, modèle préparé | Mention « généré par IA », chiffres engageants validés |
| Questions en langage naturel sur modèle | 3/5 | 4/5 | 2/5 | Métadonnées riches, mesures certifiées | Périmètre limité, journalisation |
| Génération de tests et jeux de données | 4/5 | 2/5 | 3/5 | Règles métier explicites | Revue métier |
| Documentation et descriptions | 4/5 | 3/5 | 4/5 | Glossaire, schéma | Validation propriétaire, marquage IA |
| Traduction des libellés | 3/5 | 3/5 | 4/5 | Glossaire métier | Relecture par locuteur |
| Réglage automatique (plans forcés) | 4/5 | 2/5 | 4/5 | Query Store actif | Supervision des plans forcés |
| Création d'index automatique | 3/5 | 4/5 | 3/5 | Revue périodique | Rapatrier dans le code, comparer environnements |
| Détection d'anomalies (alertes, Defender) | 3/5 | 2/5 | 3/5 | Métriques, action définie | Réduire le bruit, procédure de réponse |
| Agent « libre » modifiant la base | 2/5 | 5/5 | 1/5 | — | À proscrire en production ; sandbox + approbation |
Garde-fous#
🔴 Expert — Cadre d'usage recommandé#
- Périmètre de données : liste des environnements autorisés (développement seulement, jamais de données personnelles réelles envoyées à un service externe sans accord).
- Lecture seule d'abord : les assistants se connectent avec un compte en lecture seule (rôle
db_datareader, ou même schéma restreint) ; l'écriture passe toujours par le pipeline. - Revue humaine obligatoire de tout code généré avant fusion, comme pour du code d'un nouveau collègue ; la revue regarde la sémantique (NULL, doublons, fuseaux, accents), pas la syntaxe.
- Tests d'équivalence et de non-régression : requêtes de contrôle, totaux par périmètre et par rôle RLS ; voir tests et fiabilité des chiffres.
- Traçabilité : indiquer dans la description du changement qu'un élément a été généré/assisté par IA (cohérent avec la politique de signature des contenus rédactionnels ; pas besoin de signer chaque ligne de code).
- Pas de secret dans les prompts : chaînes de connexion, mots de passe, clés ; utiliser des coffres de secrets.
- Mesure plutôt que confiance : toute assertion de performance est confirmée par mesure ; toute limite de licence/tarif par documentation officielle.
- Veille et gouvernance : les fonctions Copilot et Fabric évoluent (changements de nom, de statut, de licence) ; une personne désignée tient à jour l'inventaire des usages autorisés.
Commencez par des cas à faible risque/fort gain : explication de plans, documentation, génération de tests, FORCE_LAST_GOOD_PLAN. Montez en gamme (réécriture, agents) quand la recette automatisée et la supervision sont en place.
Prompts d'exemple#
Contexte : Azure SQL Database, niveau de compatibilité 160, collation sensible aux accents.
Schéma (DDL joint) : dbo.FaitVisite, dbo.DimClient, dbo.DimDate.
Tâche : écris une requête qui donne, par mois et par région, le nombre de visites distinctes
et le taux de visites avec relevé. Contraintes : n'utilise que les colonnes du DDL ; aucune fonction
sur les colonnes de filtre ; gère les NULL de [DateRelevé] comme « pas de relevé » ; commente les hypothèses.
Réponds avec : la requête, les hypothèses, 3 cas limites à tester.
Voici le plan d'exécution réel (XML) d'une requête DirectQuery lente et les statistiques IO/TIME.
Liste les 3 causes les plus probables, classées, et pour chacune la mesure ou la requête qui la confirmerait.
Ne propose pas de réécriture avant confirmation.
Voici une mesure DAX et la description du modèle (tables, relations, cardinalités).
Explique-la en français simple, signale les risques de contexte (filtre/ligne), les itérateurs coûteux
et propose une version avec variables. Indique ce qui pourrait changer le résultat selon un rôle RLS.
Voici le DDL de la table dbo.DimProduit. Propose une description métier de chaque colonne (une phrase),
marque [incertain] ce qui n'est pas déductible du nom, et propose un libellé court en anglais (glossaire joint).
Ce que l'IA ne remplace pas#
- Le jugement d'architecture : choisir Import/DirectQuery/mirroring, dimensionner, arbitrer coût et fraîcheur reste une décision d'expert, avec compromis assumés (06).
- La responsabilité : le code généré est votre code ; un chiffre faux publié engage l'équipe, pas l'assistant.
- La recette métier : seule la confrontation à une référence validée par les utilisateurs prouve qu'un chiffre est juste.
- La confidentialité : aucune garantie n'est donnée par l'assistant ; elle vient de la configuration, du contrat et de la discipline.
- La mémoire du projet : l'assistant ignore les décisions antérieures, les règles non écrites et l'historique des erreurs ; la documentation vivante reste indispensable.
- La dette cachée : du code généré en masse, non compris, devient une dette de maintenance (personne ne sait pourquoi cette requête existe). Règle simple : si l'équipe ne peut pas expliquer un script, il n'entre pas.
Pour la conduite de projet en général, voir IA et conduite de projet et IA et outils ; pour la voie OneLake, 04-onelake-mobile-saas-ia.md ; pour la synthèse transverse, IA — synthèse transverse.
Voir aussi#
- Vue d'ensemble · Architecture · Difficultés et pièges
- Comparatif OneLake vs SQL Server · Bonnes pratiques transverses · Checklist de projet
- Matrice BI : mesures et calculs DAX · modèle sémantique
- Matrice PD : qualité des données
- Bibliographie et ressources · Glossaire
✻ Rédigé par Claude Sonnet 5.5