Connect with us

Leaders d’opinion

Examen de code AI pour SQL : peut-il remplacer l’œil d’un DBA senior ?

mm
A widescreen, photorealistic photograph captures a programmer working in a modern office at night. On the primary curved, transparent monitor, a complex SQL code review flowchart is visualized using glowing icons and diagrams. The screen contrasts 'Generic Code Flow' on the left with specialized database context on the right, connecting abstract representations of Schema Design, Data Distribution, and Real-time Workload. A human hand holds a stylus, emphasizing the hybrid collaboration between AI analysis and human DBA expertise.

L’intelligence artificielle pénètre rapidement presque toutes les étapes du cycle de vie du développement de logiciels. De la génération de code à la mise à l’essai automatisée, les outils d’IA sont de plus en plus intégrés dans le flux de travail quotidien des développeurs. Des enquêtes récentes auprès des développeurs montrent que 84% des développeurs utilisent déjà ou prévoient d’utiliser des outils d’IA dans leur processus de développement, avec plus de la moitié s’appuyant sur eux régulièrement.

La question que posent maintenant de nombreuses équipes d’ingénierie est simple : si l’IA peut générer du code, analyser des modèles et suggérer des optimisations, peut-elle également remplacer le jugement d’un DBA expérimenté ?

La réponse courte est non. Mais la réalité plus intéressante est que l’IA est déjà en train de transformer la façon dont les examens de code SQL fonctionnent. Plutôt que de remplacer les experts en bases de données, l’IA commence à remodeler le flux de travail de développement autour d’eux.

Le rôle traditionnel de l’examen de code DBA

Pendant longtemps, l’examen de code SQL s’est appuyé sur des DBA expérimentés. La chose à propos de SQL, c’est qu’il ne fonctionne pas tout seul. Chaque requête touche le moteur de base de données, les index et les données en direct. Donc, même de petites modifications dans une requête peuvent affecter son exécution.

Et parfois, ces petites modifications sont plus importantes que vous ne le pensez. Une mauvaise requête peut provoquer une analyse complète de la table, choisir le mauvais index et soudainement, tout le système ralentit.

C’est pourquoi les DBA regardent le SQL différemment. Ils ne lisent pas seulement la requête ; ils pensent à l’avance à la façon dont la base de données se comportera sous un trafic réel. Lors d’un examen, un DBA vérifie généralement des choses comme :

  • Les jointures inefficaces ou les requêtes profondément imbriquées.
  • Les index manquants ou mal utilisés.
  • Les requêtes qui déclenchent des analyses complètes de table.
  • Les risques de verrouillage qui pourraient bloquer d’autres transactions.
  • Les opérations qui pourraient affecter les charges de travail de production.

Mais la véritable valeur de cet examen ne réside pas seulement dans la connaissance de la syntaxe SQL. C’est connaître le système derrière la requête.

Les DBA expérimentés ont tendance à connaître la façon dont le schéma a évolué au fil du temps, la façon dont le trafic se comporte pendant les heures de pointe et la façon dont de petites modifications d’un index peuvent affecter les plans d’exécution. Une requête qui semble parfaitement fine sur le papier peut se comporter très différemment une fois qu’elle est exécutée sur des données de production réelles.

Les ingénieurs qui travaillent sur de grands systèmes parlent souvent de ce problème. Comme l’a noté l’ingénieur de Google Jeff Dean, les systèmes ne se comportent pas comme nous nous y attendons lorsqu’ils fonctionnent à grande échelle.

Comme l’a remarqué John Gall, « Un système complexe peut échouer de manière infinie ».

Ensemble, ces idées montrent pourquoi les grands systèmes ont besoin d’une surveillance humaine minutieuse. Même si l’IA intervient, les DBA expérimentés restent cruciaux. Ils ne lisent pas seulement les requêtes, ils anticipent la façon dont tout le système de base de données réagira.

Mais avec toute cette expérience nécessaire, vous vous demandez peut-être : « L’IA peut-elle vraiment aider à ces examens, ou même changer la façon dont ils sont effectués ? »

L’essor de l’IA dans le développement de logiciels

Au cours des dernières années, l’IA a commencé à changer la façon dont les développeurs écrivent des logiciels. Ce qui ressemblait à une expérience est maintenant devenu partie intégrante du travail quotidien.

Les grands modèles de langage formés sur d’immenses bases de code peuvent maintenant agir un peu comme un deuxième développeur dans l’éditeur. Ils suggèrent des fonctions, aident à rédiger la documentation et pointent parfois des bogues alors que le code est encore en cours d’écriture. Des outils comme GitHub Copilot se sont rapidement frayé un chemin dans de nombreux flux de travail de développement.

Et le changement est déjà en train de montrer un impact mesurable. Certaines études ont constaté que les développeurs travaillant avec des assistants d’IA peuvent terminer des tâches de codage jusqu’à 55% plus rapidement dans des environnements contrôlés. À mesure que les équipes adoptent ces outils, l’IA commence à influencer la quantité de code qui est écrite en premier lieu. Certaines estimations suggèrent qu’environ 40% du code dans les flux de travail modernes implique un certain niveau d’assistance d’IA.

Les grandes entreprises technologiques constatent le même schéma. Le PDG de Microsoft, Satya Nadella, a récemment déclaré que autour de 30% du code de Microsoft est maintenant écrit avec l’aide d’outils d’IA, et que ce chiffre ne cesse de croître.

Cependant, la génération de code n’est qu’une partie du puzzle. Alors que l’IA aide à produire plus de code, la question de la façon dont ce code est examiné devient encore plus importante.

Où l’IA peut améliorer l’examen de code SQL

C’est là que l’IA commence à montrer sa véritable valeur. Le SQL a quelque chose qui fonctionne bien en faveur de l’IA : les modèles. La plupart des requêtes suivent des structures reconnaissables, et de nombreux problèmes de performance se manifestent de manière prévisible. En raison de cela, les systèmes d’IA formés sur de grandes collections de requêtes SQL peuvent analyser une requête très rapidement et détecter des problèmes que les développeurs peuvent parfois manquer lors du développement précoce.

Par exemple, un assistant d’IA peut signaler des choses comme :

  • Les modèles de jointure inefficaces.
  • Les index manquants ou mal utilisés.
  • Les requêtes qui sont susceptibles de déclencher des analyses complètes de table.
  • Les goulets d’étranglement potentiels en termes de performances.
  • Les opérations qui peuvent être dangereuses à exécuter en production.

Aucun de ces contrôles ne remplace un examen complet. Mais ils peuvent détecter un nombre surprenant de problèmes tôt. Et cela change la façon dont le développement SQL se déroule. Au lieu d’écrire une requête et d’attendre un examen de code ultérieur, les développeurs peuvent obtenir des commentaires alors qu’ils écrivent encore. Cette boucle de rétroaction précoce peut économiser beaucoup de temps. Certaines études sur le développement assisté par l’IA ont constaté que les cycles d’examen peuvent diminuer considérablement une fois que l’analyse automatisée est introduite. Une étude d’entreprise a rapporté une réduction d’environ 31,8% du temps d’examen des demandes de tirage.

Dans la pratique, cela signifie que de nombreux problèmes SQL sont détectés plus tôt dans le processus, avant même qu’ils n’atteignent les systèmes de production. C’est également là que les outils de développement SQL modernes commencent à évoluer. Les outils à l’intérieur de l’écosystème dbForge, par exemple, incluent maintenant une analyse de requête assistée par l’IA qui peut suggérer de meilleures jointures, détecter des index inutiles et fournir des conseils sur la structure de requête, le tout pendant que vous écrivez. Cela aide à détecter les problèmes tôt.

Mais si nous zoomons, l’IA a encore des limites.

Les limites de l’IA dans l’ingénierie de bases de données

Malgré les progrès impressionnants, l’IA a encore du mal avec l’une des parties les plus difficiles de l’ingénierie de bases de données : le contexte. Les requêtes SQL ne fonctionnent rarement en isolation. Leurs performances dépendent de nombreux facteurs à l’intérieur du système, notamment :

  • La distribution des données
  • Les tailles de table
  • Les index existants
  • Les charges de travail concurrentes
  • Les contraintes matérielles
  • La logique spécifique à l’entreprise

Les modèles d’IA formés sur des ensembles de données généraux manquent souvent de visibilité sur ces réalités. Et ce qui est encore plus inquiétant, le code généré par l’IA peut introduire des erreurs subtiles. Une analyse récente a constaté que jusqu’à 45% des exemples de code générés par l’IA contenaient des failles de sécurité, mettant en évidence les risques de s’appuyer sur des suggestions automatisées sans examen humain.

La confiance est un autre défi. Alors que l’adoption augmente rapidement, les enquêtes révèlent que 46% des développeurs ne font toujours pas confiance aux sorties générées par l’IA, créant une tension naturelle entre l’automatisation et la surveillance. Dans l’ingénierie de bases de données, ce scepticisme est bien justifié. Une requête qui fonctionne parfaitement dans un environnement de développement peut se comporter très différemment sous des charges de travail de production. C’est là que les DBA expérimentés restent indispensables.

Le modèle hybride : IA + expertise humaine

Les équipes de développement les plus efficaces ne se demandent pas si l’IA va remplacer les DBA. Au lieu de cela, ils se demandent comment combiner l’automatisation de l’IA avec l’expertise humaine. Avec ce modèle, les outils d’IA gèrent les vérifications répétitives qui ralentissent normalement le développement, tandis que les ingénieurs expérimentés se concentrent sur les parties du travail de base de données qui nécessitent un jugement plus profond. Par exemple, les systèmes d’IA peuvent prendre en charge des tâches comme :

  • Détecter les erreurs de syntaxe
  • Suggérer des améliorations de requête
  • Signaler les modèles de requête inefficaces
  • Exécuter des analyses automatisées

Ces vérifications peuvent se produire instantanément pendant que les développeurs écrivent des requêtes, ce qui aide à détecter de nombreux problèmes tôt. Alors que l’IA gère ces vérifications de routine, les DBA se concentrent sur le travail qui nécessite une compréhension plus approfondie du système : conception de schéma, stratégie d’index, réglage des performances, planification de la capacité et protection de la stabilité de production.

En d’autres termes, l’IA se concentre sur l’accélération des parties routinières du développement SQL, tandis que les DBA se concentrent sur les décisions qui façonnent la façon dont le système de base de données se comporte réellement.

Dernier mot

L’IA est déjà en train de changer la façon dont le développement SQL fonctionne. Les outils peuvent analyser les requêtes instantanément, détecter les erreurs courantes et mettre en évidence les problèmes de performance potentiels pendant que les développeurs écrivent encore du code. Mais les systèmes de base de données sont façonnés par plus que la syntaxe de requête. La conception de schéma, les stratégies d’index et le comportement de la charge de travail nécessitent toujours un jugement humain. En raison de cela, les équipes les plus efficaces commencent à traiter l’IA comme un copilote plutôt que comme un remplacement.

L’IA peut signaler les problèmes tôt et accélérer le développement, mais les développeurs peuvent itérer plus rapidement, et les DBA peuvent se concentrer sur les décisions plus profondes qui façonnent la façon dont la base de données se comporte réellement. C’est là que la véritable valeur apparaît. L’IA apporte de la vitesse et de la reconnaissance de modèles. Les DBA expérimentés apportent du contexte et du jugement. Et dans l’ingénierie de bases de données, cette combinaison est ce qui maintient les systèmes rapides, fiables et stables.

Viсtor Horlenko est le responsable des innovations en intelligence artificielle chez Devart, où il dirige des initiatives en matière d'automatisation pilotée par l'IA, d'optimisation de produits et d'expérience client à travers l'ensemble des outils de gestion de bases de données et de connectivité de l'entreprise.