详解sqlserver查询表索引

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是你要查询的表

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

时间: 2024-10-15 13:17:05

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

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

简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于 大多数数据库来说是需要同时处理多个查询的.这些查询并不会像绅士那样排队等待执行,而是会找最短的路径执行.因此,就像十字路口需要一个红绿灯那 样,SQL Server也需要一个红绿灯来告诉查询:什么时候走,什么时候不可以走.这个红绿灯就是锁. 图1.查询可不会像绅士们那样按照次序进行排队 为什么需要锁 在开始谈锁之前,首先要简单了解一下事

转MySQL详解--索引

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多).如果对之建立B-Tree索引,则只需要进行log100(

存储过程详解 -SQLServer

来源:http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了. 存储过程的好处: 1.由于数据库执行动作时,是先编译后执行的.然而存储过程是一个编译过的代码块,所以执行效率要比T-S

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

目录 索引库查询界面详解 回到顶部 索引库查询界面详解 q:主查询条件.完全支持lucene语法.还进行了扩展. fq:过滤查询.是在主查询条件查询结果的基础上进行过滤.例如:product_price:[10 TO 20] sort:排序条件.排序的域asc.如果有多个排序条件使用半角逗号分隔. start, rows:分页处理.Start起始记录rows每页显示的记录条数. fl:返回结果中域的列表.使用半角逗号分隔. df:默认搜索域. wt:响应结果的数据格式,可以是json.xml等.

(转)SqlServer索引及优化详解(1)

(一)深入浅出理解索引结构 ??????? 实际上,您可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclustered index,也称非聚类索引.非簇集索引).下面,我们举例来说明一下聚集索引和非聚集索引的区别: ??????? 其实,我们的汉语字典的正文本身就是一个聚集索引.比如,我们要查"安"字,就会很自然地翻开字典的前几页,因为"安"的拼音是&q

SQLSERVER死锁详解

看了网上很多关于死锁的的博客,大家通常介绍死锁的原理,本人也写一个详细的分析.当然,是关于SQLSERVER的死锁. 使用SQL Profiler抓取死锁事件 2.选择选项卡:事件选择,勾选右下角的显示所有事件,找到Locks事件,勾选上Deadlock graph. 3.再选择第三个选项卡:事件提取设置,勾上死锁XML,弹出文件保存路径,输入文件名即可. 4.以上设置,出现死锁时会保存到死锁XML文件中,经操作发现只保存了最后一个死锁图,如果死锁比较多,需要使用SQL Profiler逐个保存

mysql索引详解,摘自《MySQL 5权威指南》

本文介绍了数据库索引,及其优.缺点.针对MySQL索引的特点.应用进行了详细的描述.分析了如何避免MySQL无法使用,如何使用EXPLAIN分析查询语句,如何优化MySQL索引的应用.本文摘自<MySQL 5权威指南>(3rd)的8.9节.(2007.07.05最后更新)        索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针.注:[1]索引不是万能的!索引可以加快数据检索操作,但会使数据修改操作变慢.每修改数据记录,索引

Mysql建表与索引使用规范详解

一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. 四. MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比. 五. MySQL使用时,一条SQL语句只能使用一个表的一个索引.所有的字段类型都可以索引,多列索引的属性最多15个. 六. 如果可以在多个索引中进行选择,My

【DataBase】sqlserver字段类型详解

bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用. tinyint   整型 tinyint 数据类型能存储从0到255 之间的整数.它在你只打算存储有限数目的数值时很有用.这种数据类型在数据库中占用1 个字节. 注意:如果bit类型太单调不能满足您的需求,您可以考虑用tinyint类型,因为这个类型相对也是比较安全的