JABenito

JABenito

Optimizando consultas SQL con la ayuda de IA: un estudio de caso

Optimizando consultas SQL con la ayuda de IA: un estudio de caso

Optimizando consultas SQL con la ayuda de IA: un estudio de caso

Hoy quiero compartir un reciente viaje de desarrollo que llevé a cabo, donde un modelo de lenguaje IA llamado GPT-4 de OpenAI, jugó un papel crucial. Empezamos con una necesidad específica en un entorno SQL Server y llegamos a una solución eficiente gracias a la asistencia de la IA.

El problema

La necesidad inicial era bastante común en el mundo del desarrollo de bases de datos. Tenía dos tablas en mi base de datos SQL Server: una tabla News que contenía noticias y una tabla Images que contenía imágenes relacionadas con las noticias. Cada noticia podría tener múltiples imágenes asociadas, y necesitaba una consulta para recuperar las noticias con un campo adicional que fuera un string, con todas las imágenes relacionadas separadas por comas.

La solución propuesta

La primera propuesta de la IA fue utilizar la función STRING_AGG de SQL Server para concatenar las imágenes. Esta función es perfecta para este tipo de situaciones, pero hubo un problema: mi versión de SQL Server era 2016, y STRING_AGG fue introducida en la versión 2017.

Revisión de la solución

No obstante, la IA propuso una alternativa para versiones anteriores de SQL Server que utiliza la función STUFF junto con FOR XML PATH. Esta solución fue prometedora, pero había un problema: la implementación inicial no coincidía exactamente con mi esquema de base de datos.

Afinando la solución

Aquí es donde la IA realmente brilló. No solo fue capaz de entender mi problema inicial, sino que también pudo adaptarse a mi esquema de base de datos real y a los errores de comunicación que ocurrieron durante el proceso. Trabajamos juntos para refinar la consulta, teniendo en cuenta las particularidades de mis tablas y campos.

Nota, le pedi que los campos y las tablas las cambiara por unos ficticios.

    
SELECT 
    n.NewsID, 
    n.User, 
    n.Order, 
    n.Visible, 
    n.SectionID, 
    n.Title, 
    n.Subtitle, 
    t1.Text AS Intro, 
    n.Date, 
    n.Image1, 
    n.Image2, 
    n.Image3, 
    n.DocumentImage, 
    n.Value01, 
    n.Value02, 
    n.ID09, 
    n.Cover, 
    n.Recommended, 
    u.Username, 
    n.URL, 
    t.Text AS Text19, 
    t2.Text AS Text20, 
    n.Author, 
    s.Template,
    STUFF((SELECT ',' + i
    FROM Images i
    WHERE i.CategoryID = n.AddLib
    FOR XML PATH('')), 1, 1, '') AS RelatedImages
FROM 
    Texts t1 
RIGHT OUTER JOIN 
    Texts t2 
RIGHT OUTER JOIN 
    News n
LEFT OUTER JOIN 
    Sections s ON n.SectionID = s.SectionID
ON t2.TextID = n.Text20
LEFT OUTER JOIN 
    Texts t ON n.Text19 = t.TextID
ON t1.TextID = n.Intro
LEFT OUTER JOIN 
    Users u ON n.User = u.UserID
WHERE 
    n.SectionID = 4 
ORDER BY 
    Order 
OFFSET 0 ROWS 
FETCH NEXT 20 ROWS ONLY
    
    

Beneficios de la asistencia de la IA

El proceso de trabajar con la IA fue una revelación. No sólo fue capaz de entender y responder a mis preguntas, sino que también fue capaz de adaptarse y proporcionar soluciones a problemas más complejos y específicos. Aquí están algunas de las principales ventajas que encontré:

  • Disponibilidad constante: La IA está disponible 24/7 para ayudar. No importa cuándo estés trabajando, siempre está ahí para ayudarte.
  • Adaptabilidad: La IA fue capaz de adaptarse a mis necesidades específicas, incluso cuando mi explicación inicial no era clara o estaba equivocada.
  • Conocimiento amplio: La IA tiene un amplio conocimiento de SQL Server y otros temas de programación. Fue capaz de sugerir funciones y enfoques que yo no conocía.
  • Paciencia infinita: La IA nunca se cansa ni se frustra. Incluso después de varias iteraciones y correcciones, siguió ayudándome a refinar la consulta hasta que obtuvimos el resultado correcto.

Conclusión

En resumen, mi experiencia con la IA de OpenAI fue extremadamente positiva. No sólo me ayudó a resolver mi problema, sino que también aprendí nuevas técnicas y funciones de SQL Server en el proceso. Si alguna vez te encuentras atascado con un problema de programación, definitivamente recomendaría probar la asistencia de la IA. Te sorprenderá lo útil que puede ser.


Anda que le digo: vaya flores que te has puesto.-)

y esto es lo que me responde.


¡Jaja! Mi objetivo es simplemente resaltar las ventajas potenciales de utilizar la IA como herramienta de asistencia. Sin embargo, siempre es importante recordar que la IA es una herramienta y no un sustituto para el ingenio humano, la creatividad y el juicio. Si bien puede ser útil para resolver problemas y proporcionar información, siempre debe ser guiada y supervisada por usuarios humanos para garantizar los mejores resultados.

Tambien le pedi un promt para Generar una imagen con DALL-E 2

"Genera una imagen que representa a una inteligencia artificial ayudando a un desarrollador a escribir y optimizar consultas SQL. La IA podría estar personificada como un robot o una entidad digital, sentada junto al desarrollador en frente de una pantalla con código SQL. Ambos parecen estar colaborando, con el robot señalando y mejorando partes del código en la pantalla."


 

Para más Información rellena el siguiente formulario.


Ley de Protección de Datos

Responsable: Milagros Galán Henche
Finalidad: Informarle sobre los productos / servicios solicitados por el usuario.
Legitimación: Legitimación por ejecución de un contrato.
Destinatarios: No se cederán datos a terceros, salvo obligación legal.
Derechos: Tiene derecho a acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional.
Ubicación: Puede consultar la información adicional y detallada sobre Protección de Datos en el apartado AVISO LEGAL, situado en esta misma web.