研究者 Rohan Bansal 于 2026 年 9 月 16 日公布了一项名为 QORL 的技术实验,通过约 500 条 GPT-6 Astra 代理轨迹进行离线监督微调,并结合定制的强化学习框架,将一个 4.66B 参数的 Qwen 衍生小模型训练为 PostgreSQL 的外挂执行计划生成器。在著名的 JOB 基准测试中,该模型针对 113 个重度多表连接查询实现了 44.7% 的整体延迟降低,并在筛选最优候选的评测中跑出相比 Postgres 默认计划 81% 的加速比。

这项成果展现了强化学习探索复杂搜索空间的潜力,但把跑分等同于数据库内核被大模型取代,属于典型的认知偏差。这套方案的本质不是推翻传统关系型数据库优化器,而是在特定高频分析查询中,用离线试错换取执行效率的辅助调优工具。

QORL 混合强化学习训练管线 1. 教师轨迹蒸馏 500条 GPT-6 Astra 离线 SFT 微调 仅计算 Assistant 损失 2. 算力节点推理 租用 2x H100 节点 vLLM 负责采样生成 4.66B 底座 LoRA 训练 3. 真机物理测量 本地 4 个 Docker 容器 抑制 Page Cache 噪声 实测物理执行耗时 4. 定制 GRPO 迭代 锚定式计分机制 避免劣质采样相对正向 两轮共 600 updates

4.66B 模型的外挂生成解法

多表 Join 的连接顺序搜索是数据库领域的典型 NP-hard 难题。Postgres 这类传统引擎依靠基于统计信息的代价模型做出判断,面对多表关联时极易因均匀分布假设失效而陷入基数估计误差。当查询涉及十多张表时,搜索空间呈组合爆炸,原生优化器选出的往往是次优路径。

小模型无需改动数据库内核,通过外挂旁路直接注入优化规则(示意图)
小模型无需改动数据库内核,通过外挂旁路直接注入优化规则(示意图)

面对这一死角,该项目并未重写 Postgres 内核,而是让语言模型充当外部代理,借助 pg_hint_plan 插件直接向数据库注入强制规则。这些规则涵盖指定 Join 顺序、调整扫描算子或微调随机读代价参数。

模型冷启动依赖约 500 条 GPT-6 Astra 生成的高质量多轮对话轨迹,训练过程中保持上下文完整但仅对助手回复计算损失。模型底座为 4.66B 参数规模,采用 LoRA 架构微调,可训练参数量约为 21.2M,导出的适配器权重仅有 42.5 MB

在数据分布上,训练集选用了 CEB 基准中 16 个模板衍生的约 13,600 个 IMDb 合成查询,测试集则采用完全无 Join 拓扑重叠的 33 个模板对应的 113 个 JOB 原版查询。初始状态下,基线 4B 模型甚至无法为 113 个测试查询中的 99 个输出合法执行计划。随着强化学习推进,两轮共 600 次迭代后,模型不仅攻克了输出语法门槛,还能稳定给出高效指令。

硬件配置显现出极客式拼接特征:模型训练与 vLLM 推理部署在两张租用的 NVIDIA H100 显卡上,真实执行时延的测量则放置在作者桌面的四台 Docker 容器中进行,以此压制宿主机页缓存带来的基准波动。项目相关代码已托管至 polyphilz/qorl 仓库,环境运行于 Python 3.12。社区在 Hacker News 引发讨论的同时,也有开发者指出作者公开主页与仓库命名同步上存在轻微延迟。

评测口径与性能指标真实落差 81% Best-of-15 峰值加速 单查询生成3条轨迹取最优 44.7% 全量 JOB 查询平均降幅 涵盖 113 个重度分析查询 0 ms 未计入模型推理延迟 GPU 推理与真机试跑开销剥离

81% 跑分背后的数字滤镜

报告中最具吸引力的 81% 加速指标,需要置于其严格的评测上下文中解读。该数值并非模型面对单条 SQL 单次推导直接达成的端到端效果。

81%加速背后是15次并行试错与端到端推理耗时倒挂(示意图)
81%加速背后是15次并行试错与端到端推理耗时倒挂(示意图)

测试机制实际上采取了 Best-of-15 筛选模式:系统针对每个输入查询生成 3 条生成轨迹,每条轨迹最多允许给出 5 个候选计划,随后将这些计划在真机环境依次执行,最后选取代价最低的执行时间与原生基线对比。这种机制本质上是在利用算力并行做候选探索,掩盖了多次试错失败的成本。

更严峻的脱节在于延迟口径。数据库优化器的生命线是以毫秒甚至微秒为单位的规划延迟。大模型即使参数量缩减到 4.66B,通过 GPU 完成一次提示词处理和解码也需要数十毫秒至数百毫秒。如果把语言模型的推理时延与多次候选计划的预执行成本计算在内,原本微秒级的优化阶段将被直接拖垮,出现端到端净耗时倒挂的局面。

离线探索出的最优路径,无法掩盖在线推理吞噬的时间红利。

这一局限在学术界已有公论。PVLDB 2024 发表的一项可复现性研究就曾指出,在将模型推理耗时与执行耗时合并做严苛评估时,以 Bao、Balsa、Neo 为代表的主流学习型优化器在端到端耗时上全面落后于 Postgres 原生优化器。即便是后续的 LLMSteer 或针对长尾延迟的 LLM-QO,也难以在保持极低规划开销的前提下泛化至原版 JOB 的全量负载。

  • 风险.生产数据库面临持续的数据写入和模式漂移,外挂模型根据静态数据学会的固定 Hint 规则,在数据倾斜突变时极易引发灾难性的慢查询倒退。

优化器的真正归宿是协理而非替代

将大模型直接并入关系型数据库内核的设想,在短期内并不现实。PostgreSQL 官方长期以来倾向于通过完善统计信息、扩展多列统计量(Extended Statistics)等具有确定性安全边界的手段来改进计划质量,对引入不可预测的黑盒生成模型极度克制。

数据库内核坚守封闭安全,外挂模型仅作为离线诊断协理(示意图)
数据库内核坚守封闭安全,外挂模型仅作为离线诊断协理(示意图)

真正能够承接这项技术的是外挂式慢查询离线治理场景。在大型数仓或固定报表系统中,大量复杂 SQL 每天重复执行数千次。这类场景对单词几十毫秒的优化耗时并不敏感,却对单次运行十几秒的整体查询效率极度渴求。用强化学习模型在夜间或离线调度中穷举更优的 Hint 组合,随后将最优计划固化到缓存中,在工程上具有明确的经济可行性。

  • 建议.DBA 与基础架构团队无需担忧内核被大模型取代,而应评估将其作为慢查询离线诊断工具,把专家手动编写 Hint 的经验沉淀为自动化代理。