MSSQL·查询数据库中所有索引的相关信息
程序员文章站
2022-03-16 20:18:17
阅文时长 | 0.45分钟 字数统计 | 784字符 主要内容 | 1、引言&背景 2、声明与参考资料 『MSSQL·查询数据库中所有索引的相关信息』 编写人 | SCscHero 编写时间 | 2021/5/16 AM1:56 文章类型 | 系列 完成度 | 已完成 座右铭 每一个伟大的事业,都有 ......
阅文时长 | | 0.45分钟 | 字数统计 | | 784字符 |
主要内容 | | 1、引言&背景 2、声明与参考资料 | ||
『mssql·查询数据库中所有索引的相关信息』 | |||
编写人 | | scschero | 编写时间 | | 2021/5/16 am1:56 |
文章类型 | | 系列 | 完成度 | | 已完成 |
座右铭 | 每一个伟大的事业,都有一个微不足道的开始。 |
一、引言&背景 完成度:100%
a) 应对问题&场景
查询db中所有索引的相关信息。
b) 解决原理&方法
select case when t.[type] = 'u' then '表' when t.[type] = 'v' then '视图' end as '类型', schema_name(t.schema_id) + '.' + t.[name] as '(表/视图)名称', i.[name] as 索引名称, substring(column_names, 1, len(column_names) - 1) as '列名', case when i.[type] = 1 then '聚集索引' when i.[type] = 2 then '非聚集索引' when i.[type] = 3 then 'xml索引' when i.[type] = 4 then '空间索引' when i.[type] = 5 then '聚簇列存储索引' when i.[type] = 6 then '非聚集列存储索引' when i.[type] = 7 then '非聚集哈希索引' end as '索引类型', case when i.is_unique = 1 then '唯一' else '不唯一' end as '索引是否唯一' from sys.objects t inner join sys.indexes i on t.object_id = i.object_id cross apply ( select col.[name] + ', ' from sys.index_columns ic inner join sys.columns col on ic.object_id = col.object_id and ic.column_id = col.column_id where ic.object_id = t.object_id and ic.index_id = i.index_id order by col.column_id for xml path('') ) d(column_names) where t.is_ms_shipped <> 1 and index_id > 0 order by i.[name];
二、声明与参考资料 完成度:100%
原创博文,未经许可请勿转载。
如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信scschero即可。
上一篇: oracle 虚拟专用数据库详细介绍
下一篇: Java 数组内置函数toArray详解
推荐阅读