我在查询的开头添加注释(在 Oracle 中)以提供有关查询本身的元数据信息。
我发现的关于这个话题的每一条信息都只是关于除了这个之外的提示:https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:93449400346099694 .
带有和不带有注释的执行计划是否会以相同的方式解释此查询?我的评论会对性能或缓存产生任何影响吗?
最佳答案
当您第一次运行查询时,Oracle 会创建执行计划并缓存该计划以供进一步使用。
当您添加任意注释时,实际上您运行的是不同的查询,因此 Oracle 会评估新的执行计划。一般来说,这个执行计划可能与第一个不同 - 尽管不太可能。
我记得在一次培训中,培训师向我们展示了“ secret ”Oracle 提示 /*+ RUN_FASTER */
- 事实上,查询的执行速度要快得多!诀窍是,对于原始查询,他存储了一个准备好的执行计划(请参阅 Using Plan Stability )以强制进行全表扫描。用“提示”/*+ RUN_FASTER */
您有一个新查询,优化器评估了一个新的更好的计划。
事实上提示如 /*+ RUN_SLOWER */
或 /*+ drink a cup of tea */
做同样的事情,但不会让学生感到惊讶。 :-)
关于sql - Oracle:以注释开头的查询对性能有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52293115/