日期:2014-05-16  浏览次数:20567 次

查看 Oracle中表的索引

原文地址:http://blog.csdn.net/huanzhulouzhu/article/details/6274971

?

?

用user_indexes和user_ind_columns系统表查看已经存在的索引


对于系统中已经存在的索引我们可以通过以下的两个系统视图(user_indexes和user_ind_columns)来查看其具体内 容,例如是属于那个表,哪个列和,具体有些什么参数等等。


user_indexes:???? 系统视图存放是索引的名称以及该索引是否是唯一索引等信息。

user_ind_column:? 系统视图存放的是索引名称,对应的表和列等。

?

查看索引个数和类别:

SQL> select * from user_indexes where table='表名' ;

查看索引被索引的字段:


SQL> select * from user_ind_columns where index_name=upper('&index_name');

?

我们可以通过类似下面的语句来查看一个表的索引的基本情况:

select user_ind_columns.index_name,user_ind_columns.column_name,

user_ind_columns.column_position,user_indexes.uniqueness

from user_ind_columns,user_indexes

where user_ind_columns.index_name = user_indexes.index_name

and user_ind_columns.table_name = ‘你想要查询的表名字’;


通过这条SQL语句我们能查看到一个表的具体的索引的情况,如果你想对这表的索引进行进一步的探究你应该到user_indexes中去具 体的看以下这个索引的基本情况。

?

?


完整性约束
  DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST? 显示有关约束的一般信息。
  DBA_CONS_COLUMNS、ALL_CONS_COLUMNS和USER_CONS_COLUMNS 显示有关列的相关约束的一般信息。

?

ALL_CONS_COLUMNS 视图和DBA_CONS_COLUMNS 视图与USER_CONS_COLUMNS有相同的列定义。


ALL_CONS_COLUMNS 视图能够显示用户可以访问的所有表上约束的列信息,而不管所有者是谁。
DBA_CONS_COLUMNS 视图列出了整个数据库的列级约束信息。
USER_CONS_COLUMNS

?

user_constraints 和 user_cons_columns表得作用及其联系


user_constraints:? 是表约束的视图,描述的是约束类型(constraint_type)是什么,属于哪些表(table_name),如果约束的类型为R(外键)的话,那 么r_constraint_name字段存放的就是被引用主表中的主键约束名。??

user_cons_columns: 是表约束字段的视图,说明表中的和约束相关的列参与了哪些约束。这些约束有主键约束,外键约束,索引约束.

两者可以通过(owner,constraint_name,table_name)关联:


select
a.owner 外键拥有者,
a.table_name 外键表,
substr(c.column_name,1,127) 外键列,
b.owner 主键拥有者,
b.table_name 主键表,
substr(d.column_name,1,127) 主键列
from
user_constraints a,
user_constraints b,
user_cons_columns c,
user_cons_columns d
where
??? a.r_constraint_name=b.constraint_name
and a.constraint_type='R'
and b.constraint_type='P'
and a.r_owner=b.owner
and a.constraint_name=c.constraint_name
and b.constraint_name=d.constraint_name
and a.owner=c.owner
and a.table_name=c.table_name
and b.owner=d.owner
and b.table_name=d.table_name

数据字典表列说明:

desc user_constraints

Name?????????????????????????????????????????????????????????????????????????????????? Comments???????????????????????????????????????????????????????????????????
-----------------??????????????? ---------------------------------------
OWNER?????????????????????????????????????????????????????????????????? Owner of the table?????????????????????????????????????????????????????????
CONSTRAINT_NAME???????????????????????????????????????????? Name associated with constraint definition?????????????????????????????????
CONSTRAINT_TYPE????????????????????????????????????????????? Type of constraint definition??????????????????????????????????????????????
TABLE_NAME????????????????????????????????????????????????????????? Name associated with table with constraint definition??????????????????????
SEARCH_CONDITION???????????????????????????????????????????? Text of search condition for table check???????????????????????????????????
R_OWNER???????????????????????????????????????????????????????????????? Owner of table used in referential constraint??????????????????????????????
R_CONSTRAINT_NAME????????????????????????????????????????? Name of unique constraint definition for referenced table??????????????????
DELETE_RULE????????????????????????????????????????????????????????? The delete rule for a referential constraint???????????????????????????????
STATUS????????????????????????????????????????????????????????????????????? Enforcement status of constraint -? E