Connect with us

Leader di pensiero

Revisione del codice AI per SQL: può sostituire l’occhio di 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’intelligenza artificiale sta entrando rapidamente in quasi ogni fase del ciclo di vita dello sviluppo software. Dalla generazione del codice ai test automatizzati, gli strumenti AI stanno diventando sempre più parte integrante del flusso di lavoro quotidiano degli sviluppatori. Recentemente, i sondaggi tra gli sviluppatori mostrano che 84% degli sviluppatori stanno già utilizzando o pianificano di utilizzare strumenti AI nel loro processo di sviluppo, con più della metà che si affida a essi regolarmente.

La domanda che molti team di ingegneria stanno ponendo ora è semplice: se l’AI può generare codice, analizzare modelli e suggerire ottimizzazioni, può anche sostituire il giudizio di un DBA esperto?

La risposta breve è no. Ma la realtà più interessante è che l’AI sta già trasformando il modo in cui funziona la revisione SQL. Piuttosto che sostituire gli esperti di database, l’AI sta iniziando a ridisegnare il flusso di lavoro di sviluppo intorno a loro.

Il ruolo tradizionale della revisione del codice DBA

Per molto tempo, la revisione del codice SQL si è affidata a DBA esperti. La cosa sul SQL è che non funziona da solo. Ogni query tocca il motore di database, gli indici e i dati live. Quindi, anche piccoli cambiamenti in una query possono influire su come funziona.

E a volte, quei piccoli cambiamenti contano più di quanto si pensi. Una query errata può causare una scansione completa della tabella, selezionare l’indice sbagliato e improvvisamente l’intero sistema si rallenta.

È per questo che i DBA guardano al SQL in modo diverso. Non stanno solo leggendo la query; stanno pensando in anticipo a come il database si comporterà sotto carichi reali. Durante una revisione, un DBA di solito controlla cose come:

  • Join inefficienti o query annidate profondamente.
  • Indici mancanti o utilizzati male.
  • Query che attivano la scansione completa della tabella.
  • Rischi di blocco che potrebbero bloccare altre transazioni.
  • Operazioni che potrebbero influire sui carichi di lavoro di produzione.

Ma il vero valore di questa revisione non è solo conoscere la sintassi SQL. È conoscere il sistema dietro la query.

I DBA esperti tendono a conoscere come lo schema è evoluto nel tempo, come si comporta il traffico durante le ore di punta e come piccoli cambiamenti a un indice possono influire sui piani di esecuzione. Una query che sembra perfetta sulla carta può comportarsi in modo molto diverso una volta eseguita con dati di produzione reali.

Gli ingegneri che lavorano su grandi sistemi parlano spesso di questo problema. Come ha notato l’ingegnere di Google Jeff Dean, i sistemi non si comportano come ci aspettiamo quando operano su larga scala.

Come ha osservato John Gall, “Un sistema complesso può fallire in un numero infinito di modi”.

Insieme, queste idee mostrano perché i grandi sistemi hanno bisogno di una supervisione umana attenta. Anche se l’AI interviene, i DBA esperti rimangono cruciali. Non leggono solo query, anticipano come risponderà l’intero sistema di database.

Ma con tutta l’esperienza necessaria, potresti chiederti: “L’AI può effettivamente aiutare con queste revisioni, o addirittura cambiarle?”

L’ascesa dell’AI nello sviluppo software

Negli ultimi anni, l’AI ha iniziato a cambiare il modo in cui gli sviluppatori scrivono software. Ciò che un tempo sembrava sperimentale ora sta diventando parte del lavoro quotidiano.

I grandi modelli linguistici addestrati su enormi basi di codice possono ora agire un po’ come un secondo sviluppatore nell’editor. Suggeriscono funzioni, aiutano a scrivere la documentazione e a volte indicano bug mentre il codice viene ancora scritto. Strumenti come GitHub Copilot si sono rapidamente fatti strada in molti flussi di lavoro di sviluppo.

E il cambiamento sta già mostrando un impatto misurabile. Alcuni studi hanno scoperto che gli sviluppatori che lavorano con assistenti AI possono completare i compiti di codifica fino al 55% più velocemente in ambienti controllati. Mentre i team adottano questi strumenti, l’AI sta iniziando a influenzare quanto codice viene scritto in primo luogo. Alcune stime suggeriscono che intorno al 40% del codice nei flussi di lavoro moderni coinvolge ora un certo livello di assistenza AI.

Le grandi aziende tecnologiche stanno vedendo lo stesso modello. Il CEO di Microsoft, Satya Nadella, ha recentemente affermato che intorno al 30% del codice di Microsoft è ora scritto con l’aiuto di strumenti AI, e quel numero continua a crescere.

Tuttavia, la generazione del codice è solo un pezzo del puzzle. Mentre l’AI aiuta a produrre più codice, la questione di come quel codice venga revisionato diventa ancora più importante.

Dove l’AI può migliorare la revisione del codice SQL

È qui che l’AI inizia a mostrare il suo vero valore. Il SQL ha qualcosa che funziona a favore dell’AI: i modelli. La maggior parte delle query segue strutture riconoscibili e molti problemi di prestazioni si presentano in modi prevedibili. A causa di ciò, i sistemi AI addestrati su grandi raccolte di query SQL possono scansionare una query molto rapidamente e rilevare problemi che gli sviluppatori a volte perdono durante lo sviluppo iniziale.

Ad esempio, un assistente AI potrebbe indicare cose come:

  • Modelli di join inefficienti.
  • Indici mancanti o utilizzati male.
  • Query che potrebbero attivare la scansione completa della tabella.
  • Potenziali collo di bottiglia delle prestazioni.
  • Operazioni che potrebbero essere pericolose da eseguire in produzione.

Nessuna di queste verifiche sostituisce una revisione completa. Ma possono catturare un numero sorprendente di problemi precocemente. E ciò cambia il modo in cui si svolge lo sviluppo SQL. Invece di scrivere una query e attendere una revisione del codice successiva, gli sviluppatori possono ottenere feedback mentre stanno ancora scrivendo. Quel ciclo di feedback precoce può risparmiare molto tempo. Alcuni studi sullo sviluppo assistito da AI hanno scoperto che i cicli di revisione possono diminuire notevolmente una volta introdotta l’analisi automatizzata. Uno studio aziendale ha segnalato una riduzione del 31,8% del tempo di revisione delle richieste di pull.

Nella pratica, ciò significa che molti problemi SQL vengono catturati precocemente nel processo, prima che raggiungano i sistemi di produzione. È anche qui che gli strumenti di sviluppo SQL moderni stanno iniziando a evolversi. Gli strumenti all’interno dell’ecosistema dbForge, ad esempio, includono ora un’analisi della query assistita da AI che può suggerire join migliori, rilevare indici non necessari e fornire suggerimenti sulla struttura della query, tutto mentre si scrive. Aiuta a catturare i problemi precocemente.

Ma se zoomiamo fuori, l’AI ha ancora i suoi limiti.

I limiti dell’AI nell’ingegneria del database

Nonostante i progressi impressionanti, l’AI lotta ancora con una delle parti più difficili dell’ingegneria del database: il contesto. Le query SQL raramente operano in isolamento. Le loro prestazioni dipendono da molti fattori all’interno del sistema, tra cui:

  • Distribuzione dei dati
  • Dimensioni delle tabelle
  • Indici esistenti
  • Carichi di lavoro concorrenti
  • Vincoli hardware
  • Logica aziendale specifica

I modelli AI addestrati su set di dati generici spesso mancano di visibilità su queste realtà. Ancor più preoccupante, il codice generato da AI può introdurre errori sottili. Un’analisi recente ha scoperto che fino al 45% dei campioni di codice generati da AI contenevano vulnerabilità di sicurezza, evidenziando i rischi di affidarsi a suggerimenti automatizzati senza revisione umana.

La fiducia è un’altra sfida. Mentre l’adozione sta crescendo rapidamente, i sondaggi rivelano che 46% degli sviluppatori non si fidano ancora completamente dell’output generato da AI, creando una tensione naturale tra automazione e supervisione. Nell’ingegneria del database, questo scetticismo è ben giustificato. Una query che funziona perfettamente in un ambiente di sviluppo può comportarsi in modo molto diverso sotto carichi di lavoro di produzione. È qui che i DBA esperti rimangono indispensabili.

Il modello ibrido: AI + competenza umana

I team di sviluppo più efficaci non stanno chiedendo se l’AI sostituirà i DBA. Stanno chiedendo come combinare l’automazione AI con la competenza umana. Con questo modello, gli strumenti AI gestiscono le verifiche ripetitive che normalmente rallentano lo sviluppo, mentre gli ingegneri esperti si concentrano sulle parti del lavoro di database che richiedono un giudizio più profondo. Ad esempio, gli strumenti AI possono occuparsi di compiti come:

  • Rilevamento degli errori di sintassi
  • Suggerimenti per il miglioramento delle query
  • Segnalazione di modelli di query inefficienti
  • Esecuzione di analisi automatizzate

Queste verifiche possono avvenire istantaneamente mentre gli sviluppatori scrivono query, il che aiuta a catturare molti problemi precocemente. Mentre l’AI gestisce queste verifiche di routine, i DBA si concentrano sul lavoro che richiede una comprensione del sistema più profonda: progettazione dello schema, strategia degli indici, ottimizzazione delle prestazioni, pianificazione della capacità e protezione della stabilità di produzione.

In altre parole, l’AI si concentra sull’accelerazione delle parti di routine dello sviluppo SQL, mentre i DBA si concentrano sulle decisioni che plasmano il comportamento del sistema di database.

Parola finale

L’AI sta già cambiando il modo in cui funziona lo sviluppo SQL. Gli strumenti possono analizzare le query istantaneamente, catturare errori comuni e evidenziare potenziali problemi di prestazione mentre gli sviluppatori stanno ancora scrivendo il codice. Ma i sistemi di database sono plasmati da più della sola sintassi della query. La progettazione dello schema, le strategie di indicizzazione e il comportamento del carico di lavoro richiedono ancora un giudizio umano. Per questo, i team più efficaci stanno iniziando a trattare l’AI come un copilota piuttosto che un sostituto.

L’AI può segnalare problemi precocemente e accelerare lo sviluppo, ma gli sviluppatori possono iterare più velocemente e i DBA possono concentrarsi sulle decisioni più profonde che plasmano il comportamento del database. Quel equilibrio è dove appare il vero valore. L’AI porta velocità e riconoscimento dei modelli. I DBA esperti portano contesto e giudizio. E nell’ingegneria del database, quella combinazione è ciò che mantiene i sistemi veloci, affidabili e stabili.

Viсtor Horlenko è il responsabile delle innovazioni di intelligenza artificiale in Devart, dove guida le iniziative di automazione guidata dall'intelligenza artificiale, ottimizzazione dei prodotti e esperienza del cliente in tutta la gamma di strumenti di gestione e connettività dei database dell'azienda.