
Agoda 开始利用 ChatGPT 优化 SQL 存储过程,作为其持续集成/持续交付流程的一部分。自引入这一基于大语言模型(LLM)的自动化辅助环节后,公司发现存储过程的优化时间显著缩短,数据库开发人员的工作压力也随之大幅减轻。目前,Agora 正致力于拓展 ChatGPT 的应用场景,使其在 CI/CD 流程之外也能便捷地用于 SP 优化工作。
Agoda 的数据库开发人员在 SP 优化工作上投入了大量精力,累计耗时约 366 个人工日。其中,有 320 个人工日主要用于分析那些导致性能测试失败的 SP 变更,而这些变更正是由 CI/CD 流程所报告的。公司希望减少合并请求(MR)的审批时间(90 百分位数为 4.1 小时)。
Agoda 软件工程师 Pichamon Rungarun 概述了期望使用 ChatGPT 达到的目标:
为了减少人工工作量并加快 SP 调优速度,我们将 GPT 集成到我们的开发流程中。我们的目标是减少人工审核时间,加快 MR 审批速度,并为开发人员提供性能调优自助工具。
低效的 SP 和 SQL 通常会影响公司的性能、成本和可扩展性,可能会导致响应速度慢、引发用户不满情绪、资源利用率高和可扩展性瓶颈。在实际开发过程中,应用程序开发人员在处理数据库查询时经常面临挑战,包括低效的连接和子查询、过多的查询嵌套、缺失或设计不佳的索引,以及缺乏对查询执行计划的可见性。

SQL 存储过程优化过程与 ChatGPT(来源:Agoda Engineering Blog)
该团队开发了一个自动化流程,将存储过程的 SQL 代码、表结构、索引以及性能测试报告输入到 LLM 中,使用 ChatGPT 生成 SP 优化建议。GPT 能够通过重写查询语句并推荐创建或调整索引,为 SP 提出优化后的版本。
对基于 ChatGPT 优化的 SP,CI/CD 流程会重新运行性能测试,并为数据库和应用程序开发人员提供对比,帮助他们做出明智的决策。

SQL 过程优化示例与 ChatGPT(来源:Agoda Engineering Blog)
尽管在运用 ChatGPT 方面已经取得了一定的初步成果,但开发人员仍在持续努力改进,以克服当前存在的一些限制,包括实现自动逻辑验证,确保经过大幅修改的 SP 仍能保持与原始版本相同的逻辑。
该团队正致力于将这一功能拓展至 CI/CD 流程之外,使开发人员能够在无需发起合并请求的情况下利用 GPT。此外,工程师们积极协助数据库开发人员对 GPT 的提示进行精细调整,以提高 GPT 建议的质量。最后,该团队计划将 SP 优化应用于负责最高 CPU 利用率的生产 SP,希望减少资源利用并降低基础设施成本。
原文链接:
https://www.infoq.com/news/2025/10/agoda-sql-procedure-chatgpt-cicd/
评论