加载中...

SQL Hint(优化器提示)是嵌入在 SQL 语句中的特殊指令,用于向查询优化器建议或强制特定的执行策略,如使用某个索引、指定连接顺序或连接算法、控制并行度等,是人工干预执行计划的标准手段。
Oracle 的 Hint 写在 /*+ ... */ 注释中,体系最庞大(INDEX、LEADING、USE_HASH、PARALLEL 等数百个);MySQL 提供两类:USE/FORCE/IGNORE INDEX 索引提示与 8.0 完善的优化器提示 /*+ JOIN_ORDER(...) NO_ICP(...) */;SQL Server 使用 OPTION (...) 与表提示;PostgreSQL 官方拒绝内置 Hint,社区通过 pg_hint_plan 扩展实现。
Hint 的合理场景是:统计信息难以刻画的数据特征导致优化器持续选错计划,或需要在紧急故障中立即稳定计划。其争议在于:Hint 把一次性的人工判断固化进代码,数据分布与版本演进后可能反成性能枷锁,且掩盖了统计信息等根因。通行建议是优先修复统计与索引设计,把 Hint 作为最后手段并定期复审。

登录 后参与讨论
暂无讨论,来发表第一条评论吧