SqlServer,Oracle,db2,MySql查询表索引
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.colidWHERE 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_indexeswhere user_ind_columns.index_name = user_indexes.index_nameand 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_SCANSFROM TABLE(MON_GET_INDEX('EPRICER', 'CTMTTRN', -2)) as MGI, SYSCAT.INDEXES AS SIWHERE MGI.TABSCHEMA = SI.TABSCHEMA AND MGI.TABNAME = SI.TABNAME AND MGI.IID = SI.IIDORDER BY MGI.INDEX_SCANS DESC; |
MySql
|
1
|
SHOW index FROM 'tblname'; |
posted on 2020-06-11 14:15 AbelAngelo 阅读(237) 评论(0) 收藏 举报
浙公网安备 33010602011771号