clement13.net
Photo d’origine : Calculatrice mécanique ancienne à leviers, à curseurs et à rangées de touches, exposée dans une vitrine.
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
Photo d’origine, non retouchée. L’arrière-plan en est une version stylisée par le site.

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…

Guide≈ 13 min de lectureVérifié en partieContrôle partielLes faits principaux ont été contrôlés par recherche dans des sources citées. Les éléments ci-dessous restent à recontrôler avant de s’y fier.À recontrôler
  • Statut actuel d’Intelligent Insights et des alertes/détection d’anomalies en aperçu non confirmé par source primaire.
  • Éligibilité des capacités Fabric/Premium pour Copilot Power BI et statut des assistants Fabric non revérifiés.
Rédaction assistée par IA ; sources citées en bas de page. Une erreur ? Signalez-la via le site clement13.net.
Lecture
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

Niveau : 🟢→🔴

Deux familles d'IA à ne pas confondre#

🟢 Novice — Assistant ou moteur ?#

  1. 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.
  2. 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.)

✅ Bonne pratique

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.

⚠️ Piège

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.

🤖 IA

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.
💡 Astuce d'expert

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.

⚠️ Piège

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
⚠️ Piège

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)
🧪 Exemple

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

🤖 IA

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#

  1. Capturer la requête et son plan dans Query Store (référence).
  2. Soumettre le plan à l'assistant ; obtenir 2–3 hypothèses.
  3. Tester chaque hypothèse séparément, en alternance, sur environnement dédié, en CPU et lectures logiques (protocole de mesure).
  4. Contrôler l'équivalence des résultats.
  5. 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).
⚠️ Piège

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.

✅ Bonne pratique

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.

⚠️ Piège

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.

🤖 IA

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

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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).
  6. Pas de secret dans les prompts : chaînes de connexion, mots de passe, clés ; utiliser des coffres de secrets.
  7. Mesure plutôt que confiance : toute assertion de performance est confirmée par mesure ; toute limite de licence/tarif par documentation officielle.
  8. 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.
✅ Bonne pratique

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.
🤖 IA

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#

✻ Rédigé par Claude Sonnet 5.5