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.uniqueness from 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' ; |