Oracle SQL用户定义的提示

时间:2014-08-17 19:11:00

标签: sql performance oracle oracle11g

oracle是否允许在SQL中为提示创建助记符?我无法在Oracle文档中找到任何此类概念,但我发现某些查询正在生产中运行,其提示如下所示:

select /*+ AHintWhichIsNotInOracleDocumentation */ from some_table;

我认为优化器会安全地忽略这一点,直到找到http://www.confio.com/logicalread/oracle-11g-making-query-run-magically-faster-mc02/#.U_D8WqOTJUA

作者谈到"添加"一个名为" RICHS_SECRET_HINT"的提示在" X $"表? Oracle中是否提供此功能?如果是,请链接到文档。感谢。

编辑: 为了进一步澄清,我希望找到Oracle是否提供了在新提示和Oracle提供的提示之间创建键值关系的方法。这似乎是一个毫无意义的功能,因为当SQL中使用很多提示时很少会缩短提示的长度。但考虑到我在工作中看到的暗示,我更好奇地发现它们是否存在。

因此,基本上在上面的SQL中,我希望在AHintWhichIsNotInOracleDocumentation和Oracle的标准提示之间进行一些映射,例如ORDEREDUSE_NL等,

1 个答案:

答案 0 :(得分:2)

您链接的文章与创建自己的提示无关。这篇文章证明,当现实情况是性能提高只是因为数据已被缓存时,欺骗自己认为你已经提高了查询的性能(在这种情况下通过添加一个什么都不做的提示)是相对容易的。先前的处决。

您无法定义自己的提示。有一些没有记录的提示。鉴于很少使用文档提示是提高查询性能的正确长期答案(修复基础统计问题或创建配置文件/大纲等几乎总是有意义的),你的可能性极小。 d想要使用未记录的提示。我无法想象能够定义自己的提示是有意义的。