执行计划中有一个 access 和 filter 选项,还有可以看到 index字样的话说明就用到了,如果看不到就没有用到,如果必须要用的话可以使用强制索引.
---
以上,希望对你有所帮助.
oracle对于数据库中的表信息,存储在系统表中.查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询:
① 根据表名,查询一张表的索引
select?*?from?user_indexes?where?table_name=upper('表名');
select?*?from?user_ind_columns?where?index_name=('索引名');
select?dbms_metadata.get_ddl('INDEX','索引名',?['用户名'])?from?dual?;?--['用户名']可省,默认为登录用户
PS:dbms_metadata.get_ddl还可以得到建表语句,如:
SELECT?DBMS_METADATA.GET_DDL('TABLE','表名',?['用户名'])?FROM?DUAL?;?//取单个表的建表语句,['用户名']可不输入,默认为登录用户
SELECT?DBMS_METADATA.GET_DDL('TABLE',u.table_name)?FROM?USER_TABLES?u;?//取用户下所有表的建表语句
当然,也可以用pl/sql developer工具来查看相关的表的各种信息.