暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 在查询中留下虚假提示

askTom 2018-06-12
132

问题描述

你好,

我正在创建一个脚本来使用DBMS_XPLAN.DISPLAY_CURSOR自动生成计划报告,为此,我想在表中放入标准注释并通过dba_source和v $ sql查询它。例如

select /* xplan_my_test_pkg01 */ * from dual;
复制


当我使用普通注释时,我可以通过搜索v $ sql来识别PLSQL块,但不是实际的sql语句。因此,我已将注释更新为一个假提示,它使我能够在v $ sql中正确识别查询;

select /*+ xplan_my_test_pkg01 */ * from dual;
复制


基于此,我想知道是否有任何负面影响,可能会在查询中留下假提示,因为我假设它不应该影响优化器; 或者应该在进入生产环境之前将其删除。

谢谢

专家解答

无效的提示被简单地忽略。而且我忘记了在代码中看到无效提示的次数,这些提示 * 意味着 * 有效 :-)

但是这种方法显然不是没有一些 (小) 风险,即

1) 有一天我们可能会做出无效的提示,引发错误
2) 有一天您的评论可能会成为有效的提示

因此,我的建议是在生产前将其剥离。如果您有一个好的命名标准,我想您可以通过自动化来实现这一目标,从而使其成为一项艰巨的任务。

欢迎其他人提出他们的想法。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论