雅高达在持续集成/持续部署(CI/CD)流程中利用 ChatGPT 进行 SQL 存储过程优化。

Agoda 开始在其 CI/CD 流程中利用 ChatGPT 优化 SQL 存储过程(SP)。引入自动化的 LLM 辅助步骤后,公司观察到存储过程优化时间缩短,减轻了数据库开发人员的负担。Agora 致力于在 CI/CD 管道之外使 ChatGPT 更易于用于 SP 优化。

Agoda 的数据库开发人员在 SP 优化上花费约 366 人日,其中 320 人日用于分析由 CI/CD 管道报告的导致性能测试失败的 SP 更改。公司希望减少合并请求(MR)的批准时间(90 百分位为 4.1 小时)。

Agoda 的员工软件工程师 Pichamon Rungarun 概述了使用 ChatGPT 的背后目标:

  • 为减少手动工作并加速 SP 调优,将 GPT 集成到开发工作流中。目标是减少手动审核时间,加快 MR 批准,并让开发人员能够访问用于性能调优的自助服务工具。

低效的 SP 和 SQL 总体上影响了公司的性能、成本和可扩展性,可能导致响应时间缓慢、用户不满、资源利用率提高和可扩展性瓶颈。然而,应用程序开发人员在处理数据库查询时经常遇到挑战,包括低效的连接和子查询、过度的查询嵌套、缺失或设计不佳的索引以及对查询执行计划的缺乏可见性。

团队创建了一个自动化步骤,通过将存储过程的 SQL 代码、表结构和索引以及性能测试报告提供给 LLM,使用 ChatGPT 生成 SP 优化建议。因此,GPT 通过重写查询建议 SP 的优化版本,并建议创建或修改索引。

基于 ChatGPT 优化的 SP 版本,CI/CD 管道重新运行性能测试,并向数据库和应用程序开发人员提供并排比较,帮助他们做出明智的决策。

尽管在利用 ChatGPT 方面取得了初步成功,但开发人员正在努力改进以解决一些限制,包括自动化逻辑验证,以确保尽管 LLM 建议进行大量更改,但经过大量修订的 SP 实现相同的逻辑。

团队正在努力使该功能在 CI/CD 管道之外可用,以便开发人员可以在不需要打开合并请求的情况下利用基于 GPT 的支持。此外,工程师正在寻求帮助数据库开发人员微调 GPT 提示以提高 GPT 建议的质量。最后,团队计划将 SP 优化应用于负责最高 CPU 利用率的生产 SP,希望减少资源利用率并降低基础设施成本。

阅读 15
0 条评论