Oracle - 如何获取索引字段等信息

Ton*_*nyP 11 plsql oracle10g

如何列出Oracle中易于定义的索引列?

我如何在select语句中使用这些索引?就像是:

SELECT x, y, z FROM a WITH INDEX(x)...
Run Code Online (Sandbox Code Playgroud)

a_h*_*ame 15

如何列出Oracle中容易定义的索引列

SELECT *
FROM all_ind_columns
WHERE table_name = 'YOUR_TABLE'
Run Code Online (Sandbox Code Playgroud)

http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_1064.htm#i1577532

如何在select语句中使用这些索引

你不需要做任何事情.如果索引将加速查询,Oracle将自动使用它.


Mic*_*ter 6

此查询还显示基于函数的索引的列表达式(如果有):

SELECT
 i.table_owner,
 i.table_name,
 i.index_name,
 i.uniqueness,
 c.column_name,
 f.column_expression
FROM      all_indexes i
LEFT JOIN all_ind_columns c
 ON   i.index_name      = c.index_name
 AND  i.owner           = c.index_owner
LEFT JOIN all_ind_expressions f
 ON   c.index_owner     = f.index_owner
 AND  c.index_name      = f.index_name
 AND  c.table_owner     = f.table_owner
 AND  c.table_name      = f.table_name
 AND  c.column_position = f.column_position
WHERE i.table_owner LIKE UPPER('%someuserpattern%')
 AND  i.table_name  LIKE UPPER('%sometablepattern%')
ORDER BY i.table_owner, i.table_name, i.index_name, c.column_position
Run Code Online (Sandbox Code Playgroud)