Agoda використовує ChatGPT для оптимізації SQL збережених процедур у процесі CI/CD

Олена Ткач

3 Жовтня, 2025

Компанія Agoda почала використовувати ChatGPT для оптимізації SQL-збережених процедур (SP) в рамках процесу CI/CD. Після впровадження автоматизованого етапу з підтримкою великих мовних моделей (LLM) було зафіксовано скорочення часу оптимізації збережених процедур, що значно полегшило навантаження на розробників баз даних. Наразі Agoda працює над тим, щоб зробити ChatGPT більш доступним для оптимізації збережених процедур поза межами CI/CD-процесу.

Розробники баз даних Agoda витрачали приблизно 366 робочих днів на оптимізацію SP, при цьому 320 днів були присвячені аналізу змін у SP, що призводили до провалів тестів продуктивності, зафіксованих у CI/CD-пайплайні. Компанія прагнула скоротити час затвердження запитів на об’єднання (merge request, MR), який у 90-му процентилі становив 4,1 години.

Пічамон Рунгарун, штатний інженер-програміст Agoda, окреслив основні завдання впровадження ChatGPT у робочі процеси:

– зменшити ручну працю при налаштуванні збережених процедур;
– прискорити процес їх оптимізації;
– скоротити час рецензування і затвердження MR;
– надати розробникам можливість самостійно користуватися інструментами для покращення продуктивності.

Неоптимізовані збережені процедури та SQL-запити загалом негативно впливали на продуктивність системи, збільшували операційні витрати та ставили під загрозу масштабованість додатків. Це могло спричинити повільні відповіді сервісів, невдоволення користувачів, підвищене споживання ресурсів і виникнення «вузьких місць» у роботі інфраструктури. Крім того, розробники додатків стикалися з проблемами у роботі з базами даних, серед яких:

– неефективні операції приєднання (join) та підзапити;
– надто складні та вкладені запити;
– відсутність або некоректне проектування індексів;
– обмежена видимість планів виконання запитів.

Команда Agoda розробила автоматизований етап, який за допомогою ChatGPT генерує рекомендації щодо оптимізації SP. Для цього в модель подають SQL-код збереженої процедури, структури таблиць і індекси, а також звіт про результати перевірки продуктивності. У відповідь GPT пропонує оптимізовану версію SP, переписуючи запити та рекомендує створити або змінити індекси.

Після отримання оптимізованої версії SP від ChatGPT CI/CD-пайплайн повторно запускає тест продуктивності і порівнює результати біч-о-біч, надаючи розробникам баз даних і додатків можливість обґрунтовано приймати рішення щодо подальших дій.

Попри успіхи у застосуванні ChatGPT, фахівці продовжують працювати над усуненням деяких обмежень. Зокрема, в процесі оптимізації планується впровадити автоматичну перевірку логіки, щоб гарантувати, що значні зміни у SP не спотворюють первинну функціональність, навіть якщо зміни, запропоновані LLM, є суттєвими.

Додатково, команда прагне надати доступ до цієї функціональності за межами CI/CD-процесу, щоб розробники могли отримувати підтримку GPT без необхідності створювати merge request. Інженери також працюють над вдосконаленням підказок (prompt tuning) для GPT, щоб підвищити якість рекомендацій, а також планують застосувати оптимізацію SP до тих процедур, які споживають найбільшу частину процесорних ресурсів у продуктивному середовищі. Це має на меті знизити витрати на інфраструктуру та оптимізувати використання обчислювальних ресурсів.

author avatar
Олена Ткач
Фахівчиня з цифрового маркетингу. Пише просто про складне: штучний інтелект, мобільні додатки, технології в Україні.Гасло: «Технології — це просто. Особливо, коли пояснюю я».

різне