概述

尽管oscar优化器在生成正确的执行计划方面有着相当可靠的准确性,但面对数据库系统中成千上万的查询语句,优化器也未必就能100%给出最优的执行计划。因此,对于某一条特定的查询语句,如果用户对查询所涉及的表数据非常了解,那么通过使用hint,用户就可以强制优化器产生自己指定的执行计划,从而获得更好的查询性能。目前实现的hint有以下功能:

当用户输入正确的hint时,优化器会完全按照用户的hint指示生成相应的执行计划。

当用户输入的hint存在语法或语义的错误时,优化器会自动忽略这些错误的hint,同时不会影响其它正确hint的执行。

当用户输入的hint所指定的计划是优化器不可能生成的计划时,优化器会自动忽略这些hint,同时优化器会自己给出一个自认为最优的执行计划。