【问题标题】:How to determine if and which index is being used in oracle如何确定oracle中是否正在使用以及使用哪个索引
【发布时间】:2012-09-19 22:25:19
【问题描述】:

谁能提供有关如何检查或验证我创建的索引是否正在查询中的说明? 谢谢。

【问题讨论】:

  • 关于 SO for MySQL db 是否有类似的问题?

标签: sql oracle indexing oracle-sqldeveloper


【解决方案1】:

如果这是在 SQLDeveloper 中,则突出显示查询并单击“自动跟踪”按钮。通常F6键对应这个动作。

【讨论】:

    【解决方案2】:

    使用以下设置,然后执行会话查询。

       Set Autotrace on;
    

    我看到您正在使用 sqldeveloper。当您执行设置自动跟踪后,脚本输出窗口将显示解释计划和统计信息,而查询结果窗口将显示您的输出。解释计划会让您知道索引是否用于执行的查询。

    【讨论】:

      【解决方案3】:

      在“解释计划”之后,你会想要这样的东西:

      select * from table(dbms_xplan.display);
      

      阅读:

      【讨论】:

      • 关于 SO for MySQL db 是否有类似的问题?
      • @SandeepanNath 如果您访问上面的链接,您会发现一个标有“This Page for”的框,然后还列出了 MySQL。只需单击此处,您将看到相同的内容,仅适用于 MySQL。
      【解决方案4】:

      我相信你可以使用的 oracle

      EXPLAIN PLAN for sql
      

      它应该为您概述正在使用的索引,如果有的话。

      【讨论】:

      • 我执行了上面的代码,它只是说“解释”..我在哪里检查结果?
      猜你喜欢
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多