SELECT   索引名称=a.name

,表名=c.name

,索引字段名=d.name

,索引字段位置=d.colid

1
2
3
4
5
6
7
8
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

需创建索引 例如:

根据某列判断是否有重复记录,如果该列为非主键,则创建索引

根据经常查询的列,创建索引

无须创建索引

字段内容大部分一样,例如:男,女

不要给所有的列都创建索引,这样在创建新记录时,增加维护开销时间。

Oracle 查询用户表索引

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

 SqlServer查询一个表上的索引

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SELECT
TableId=O.[object_id],
TableName=O.Name,
IndexId=ISNULL(KC.[object_id],IDX.index_id),
IndexName=IDX.Name,
IndexType=ISNULL(KC.type_desc,'Index'),
Index_Column_id=IDXC.index_column_id,
ColumnID=C.Column_id,
ColumnName=C.Name,
Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending')
WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END,
PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'√'ELSE N'' END,
[UQIQUE]=CASE WHEN IDX.is_unique=1 THEN N'√'ELSE N'' END,
Ignore_dup_key=CASE WHEN IDX.ignore_dup_key=1 THEN N'√'ELSE N'' END,
Disabled=CASE WHEN IDX.is_disabled=1 THEN N'√'ELSE N'' END,
Fill_factor=IDX.fill_factor,
Padded=CASE WHEN IDX.is_padded=1 THEN N'√'ELSE N'' END
FROM sys.indexes IDX
INNER JOIN sys.index_columns IDXC
ON IDX.[object_id]=IDXC.[object_id]
AND IDX.index_id=IDXC.index_id
LEFT JOIN sys.key_constraints KC
ON IDX.[object_id]=KC.[parent_object_id]
AND IDX.index_id=KC.unique_index_id
INNER JOIN sys.objects O
ON O.[object_id]=IDX.[object_id]
INNER JOIN sys.columns C
ON O.[object_id]=C.[object_id]
AND O.type='U'
AND O.is_ms_shipped=0
AND IDXC.Column_id=C.Column_id where O.name='cz201' --cz201是你要查询的表

以上内容就是本文全部所述,希望大家喜欢。

详解sqlserver查询表索引的更多相关文章

  1. MYsql 锁详解 锁 与索引的关系

    原文:http://blog.csdn.net/xifeijian/article/details/20313977#t10   mysql innodb的锁是通过锁索引来实现的.   select ...

  2. 【Explain】mysql之explain详解(分析索引的最佳使用)

    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain 这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句 ...

  3. sqlserver锁机制详解(sqlserver查看锁)

    简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于 大多数数据库来说是需要同时处理多个查询 ...

  4. 转MySQL详解--索引

    写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将 ...

  5. 存储过程详解 -SQLServer

    来源:http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧 ...

  6. 详解SQLServer 存储过程

    Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量.条件执行和其他强大的编程功能. 存储过程相对于其 ...

  7. 详解SQLServer如何链接远程MySQL数据库

    最近遇到“SQL如何链接远程MySQL”这个问题,现在问题终于解决,特把方法贴出来:(我所用的操作系统是Win7,数据库是SQL2005.) 1.在SQL SERVER服务器上安装MYSQL ODBC ...

  8. 【Solr】索引库查询界面详解

    目录 索引库查询界面详解 回到顶部 索引库查询界面详解 q:主查询条件.完全支持lucene语法.还进行了扩展. fq:过滤查询.是在主查询条件查询结果的基础上进行过滤.例如:product_pric ...

  9. mysql索引详解(转)

    什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的 ...

随机推荐

  1. DATEADD()

    定义和用法 DATEADD() 函数在日期中添加或减去指定的时间间隔. 语法 DATEADD(datepart,number,date) date 参数是合法的日期表达式.number 是您希望添加的 ...

  2. 15.4 Task 异步匿名函数

    Func<int, Task<int>> func = async x => { Console.WriteLine("starting x={0}" ...

  3. grpc-web与react的集成

    很久没写总结了,在这里跟大家分享一下自己踩的坑,同时也方便自己多记忆下. 大致流程: 使用create-react-app脚手架生成react相关部分,脚手架内部会通过node自动起一个客户端,然后和 ...

  4. Eureka 服务的注册和发现

    二.Eureka 服务端 1.新建一个 maven module 子项目 microservicecloud-eureka-server 2.pom.xml <project xmlns=&qu ...

  5. VirtualBox没有权限访问共享文件夹

    将用户添加至vboxsf组 命令: sudo adduser ly vboxsf 搞定!

  6. mysql优化 explain index

    本文章属于转载,尊重原创:http://www.2cto.com/database/201501/369135.html 实验环境: 1.sql工具:Navicat 2.sql数据库,使用openst ...

  7. ASP.NET--MVC--伪静态

    原文地址 以前伪静态很流行主要是为了SEO优化排名,现在搜索引擎对静态网站和动态网站的权重差不多了,就没有必要再伪静态了,个人意见,仅供参考. 有些客户要求设置静态的,为了完成需求,而且更简单的做法就 ...

  8. Java经典线程同步问题------生产者与消费者

    先上代码 class Test { public static void main(String []args) { Queue q=new Queue(); Producer p=new Produ ...

  9. 关于Dos窗体的设置

    1.输入cmd,点击回车键.出现下图: 2.点击左上角(红框框起来的地方),进行例如以下图操作: 3.选择"属性",出现下图: 4.选择"字体"能够改动字体的大 ...

  10. er图简单回顾

    实体对象:矩形 属性:椭圆 关系:菱形 一对一,一对多,多对一,多对多