SELECT 索引名称=a.name
,表名=c.name
,索引字段名=d.name
,索引字段位置=d.colid
FROM sysindexes a
JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid
JOIN sysobjects c ON b.id=c.id
JOIN syscolumns d ON b.id=d.id AND b.colid=d.colid
WHERE a.indid NOT IN(0,255)
-- and c.xtype='U' and c.status>0 --查所有用户表
AND c.name='message' --查指定表
ORDER BY c.name,a.name,d.name
需创建索引 例如:
- 根据某列判断是否有重复记录,如果该列为非主键,则创建索引
- 根据经常查询的列,创建索引
无须创建索引
- 字段内容大部分一样,例如:男,女
- 不要给所有的列都创建索引,这样在创建新记录时,增加维护开销时间。
Oracle 查询用户表索引
select index_name,index_type,table_name from user_indexes where table_name='表名'