代码改变世界

sqlserver查询表索引

2012-09-19 18:18  Spring.Guo  阅读(21522)  评论(0编辑  收藏  举报

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

 

需创建索引 例如:

  1. 根据某列判断是否有重复记录,如果该列为非主键,则创建索引
  2. 根据经常查询的列,创建索引

 

无须创建索引

  1. 字段内容大部分一样,例如:男,女
  2. 不要给所有的列都创建索引,这样在创建新记录时,增加维护开销时间。

 

Oracle 查询用户表索引

select index_name,index_type,table_name from user_indexes where table_name='表名'