SqlServer1. 查询表索引SELECT 索引名称=a.name
,表名=c.name
,索引字段名=d.name
,索引字段位置=d.colid
,c.status
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
|
SqlServer2. 查询没有索引的表 |
|
1
2
3
4
5
6
7
8
9
10
11
12
|
select * from sysobjects where xtype='U'
and name not in (
SELECT c.name
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 name
|
Oracle
|
1
2
3
4
5
|
select user_ind_columns.index_name,user_ind_columns.column_name,
user_ind_columns.column_position,user_indexes.uniquenessfrom user_ind_columns,user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = ‘你想要查询的表名字’;
|
db2
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
SELECT SUBSTR(SI.INDSCHEMA, 1, 30) AS INDSCHEMA,
SUBSTR(SI.INDNAME, 1, 30) AS INDNAME,
MGI.INDEX_SCANS,
MGI.INDEX_ONLY_SCANS
FROM TABLE(MON_GET_INDEX('EPRICER', 'CTMTTRN', -2)) as MGI,
SYSCAT.INDEXES AS SI
WHERE MGI.TABSCHEMA = SI.TABSCHEMA
AND MGI.TABNAME = SI.TABNAME
AND MGI.IID = SI.IID
ORDER BY
MGI.INDEX_SCANS DESC;
|
MySql
|
1
|
SHOW index FROM 'tblname';
|