如何在sql语句中显示Oracle索引

Posted

技术标签:

【中文标题】如何在sql语句中显示Oracle索引【英文标题】:How to show Oracle index was used in sql statement 【发布时间】:2014-07-28 18:29:24 【问题描述】:

我有一个关于 Oracle 索引的问题。 为部门表的部门名称属性创建索引。 证明该索引将在下面的 SQL 语句中使用。 select * from department_name='COMPUTER'

我创建了索引,但我不确定如何证明它,因为在 SQL 语句中看不到索引。

在部门(部门名称)上创建索引 dept.idx;

从 department_name='COMPUTER' 的部门中选择 *

如何证明?

【问题讨论】:

【参考方案1】:

使用解释计划,它会告诉你数据库计划使用什么来运行查询,

--Generate explain plan.
EXPLAIN PLAN FOR
select * from departments where department_name='COMPUTER';

--Display explain plan.
select * from table(dbms_xplan.display);

【讨论】:

谢谢@jonearles 我刚回来添加显示部分!【参考方案2】:
ALTER INDEX dept.idx MONITORING USAGE;

select * from departments where department_name='COMPUTER'

SELECT index_name,
   table_name,
   monitoring,
   used,
   start_monitoring,
   end_monitoring
FROM   v$object_usage
WHERE  index_name = 'IDX'
ORDER BY index_name;

【讨论】:

以上是关于如何在sql语句中显示Oracle索引的主要内容,如果未能解决你的问题,请参考以下文章

在oracle中如何使用sql语句创建默认约束

oracle用sql语句插入数据,为啥老是显示正在运行

如何在 Oracle SQL 中显示索引 [重复]

如何将oracle数据库的sql语句执行结果保存到一个sql文件中?

oracle sql语句 显示树形结构

oracle 中sql语句怎么加多个强制索引