摘要:慢查询是指执行时间超过数据库系统所设定的阈值, 从而影响整体性能的查询. 由于开发人员经验不足及查询接口模板缺乏灵活性, 慢查询在应用程序中频繁出现, 成为数据库故障的主要原因. 为了提速慢查询, 数据库管理员通常会进行人工修复, 但是在数据量较大的情况下效率较低, 因此针对慢查询的自动重写方法的研究显得尤为重要. 查询提示是用于显式控制数据库优化器决策的调优指令, 可以通过影响访问路径等策略来改善查询性能. 查询提示推荐作为数据库查询重写领域的重要研究问题, 已经得到广泛关注. 然而, 目前基于机器学习的提示推荐方法仍面临粒度较粗、依赖人工指定候选集等问题. 针对这些问题, 提出基于生成式模型的细粒度提示推荐框架QueryGuide, 通过探索不同细粒度提示的最优组合方式, 来提升重写语句的物理计划执行效率. 具体而言, 该框架一方面基于生成式语言模型探寻推荐策略, 在数据库环境中探索提示对慢查询性能的提升, 并将其作为奖励用于模型微调, 从而生成表级别的细粒度提示; 另一方面提出使用生成式模型推荐的细粒度提示作为探索方向, 并通过扩展得到提示组合. 将组合的探索结果用于模型微调, 可以使模型学习不同提示组合对慢查询重写性能的影响, 从而获得最佳提示组合. 在多个数据集上的实验结果表明, 相较于其他基线算法, QueryGuide方法表现出更好的重写性能, 显著改善了查询时间.