Oracle 显示索引信息

  • 格式:doc
  • 大小:66.00 KB
  • 文档页数:2

下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle 显示索引信息

为了显示Oracle索引的信息,Oracle提供了一系列的数据字典视图。通过查询这些数据字典视图,用户可以了解索引的各方面信息。

1.显示表的所有索引

索引是用于加速数据存储的数据库对象。通过查询数据字典视图DBA_INDEXES,可以显示数据库的所有索引;通过查询数据字典视图ALL_INDEXES,可以显示当前用户可访问的所有索引;查询数据字典视图USER_INDEXES,可以显示当前用户的索引信息。下面以显示SCOTT用户EMP表的所有索引为例,说明使用数据字典视图DBA_INDEXES的方法:

SQL> connect system/password

已连接。

SQL> select index_name,index_type,uniqueness

2 from dba_indexes

3 where owner='SCOTT' and table_name='EMP';

INDEX_NAME INDEX_TYPE UNIQUENES

------------------------------ --------------------------- ---------

EMP_ENAME_INDEX NORMAL NONUNIQUE

EMP_JOB_BMP BITMAP NONUNIQUE

IDX_ENAME FUNCTION-BASED NORMAL NONUNIQUE

PK_EMP NORMAL/REV UNIQUE

如上所示,INDEX_NAME用于标识索引名。INDEX_TYPE用于标识索引类型:NORMAL表示普通B树索引;REV表示反向键索引;BITMAP表示位图索引;FUNCTION 表示基于函数的索引。UNIQUENESS用于标识索引的惟一性;OWNER用于标识对象的所有者;TABLE_NAME用于标识表名。

2.显示索引列

创建索引时,需要提供相应的表列。通过查询数据字典视图DBA_IND_COLUMNS,可以显示所有索引的表列信息;通过查询数据字典视图ALL_IND_COLUMNS,可以显示当前用户可访问所有索引的表列信息;通过查询数据字典视图USER_IND_COLUMNS,可以显示当前用户索引的表列信息。

例如,下面的语句将显示SCOTT用户的PK_EMP索引列信息:

SQL> col column_name format a20

SQL> select column_name,column_position,column_length

2 from user_ind_columns

3 where index_name='PK_EMP';

COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH

-------------------- ---------------------------- -------------

EMPNO 1 22

如上所示,COLUMN_NAME用于标识索引列的名称;COLUMN_POSITION用于标识列在索引中的位置;COLUMN_LENGTH用于标识索引列的长度。

3.显示索引段位置及尺寸

建立索引时,Oracle会为索引分配相应的索引段,索引数据会被存放在索引段中,并且段名与索引名完全相同。通过查询数据字典视图DBA_SEGMENTS,可以显示数据库所有段的详细信息;通过查询数据字典视图USER_SEGMENTS,可以显示当前用户段的详细信息。

例如,下面的语句将显示SCOTT用户的PK_EMP段的信息:

SQL> select tablespace_name,segment_type,bytes

2 from user_segments

3 where segment_name='PK_EMP';

TABLESPACE_NAME SEGMENT_TYPE BYTES

------------------------------ ------------------ ----------

USERS INDEX 65536

其中,TABLESPACE_NAME用于标识段所在的表空间;SEGMENT_TYPE用于标识段的类型;BYTES用于标识段的尺寸;SEGMENT_NAME用于标识段的名称。

4.显示函数索引

建立函数索引时,Oracle会将函数索引的信息存放到数据字典中。通过查询数据字典视图DBA_IND_EXPRESSIONS,可以显示数据库所有函数索引所对应的函数或表达式;通过查询数据字典USER_IND_EXPRESSIONS,可以显示当前用户函数索引所对应的函数或表达式。

例如,下面的语句显示EMP表中基于函数的索引信息:

SQL> select column_expression

2 from user_ind_expressions

3 where index_name='IDX_ENAME';

COLUMN_EXPRESSION

--------------------------------------

LOWER("ENAME")

相关主题