当前位置:Gxlcms > mssql > 详解sqlserver查询表索引

详解sqlserver查询表索引

时间:2021-07-01 10:21:17 帮助过:145人阅读

SELECT   索引名称=a.name 

,表名=c.name 

,索引字段名=d.name 

,索引字段位置=d.colid 

  1. FROM sysindexes a
  2. JOIN sysindexkeys b ON a.id=b.id AND a.indid=b.indid
  3. JOIN sysobjects c ON b.id=c.id
  4. JOIN syscolumns d ON b.id=d.id AND b.colid=d.colid
  5. WHERE a.indid NOT IN(0,255)
  6. -- and c.xtype='U' and c.status>0 --查所有用户表
  7. AND c.name='message' --查指定表
  8. 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. SELECT
  2. TableId=O.[object_id],
  3. TableName=O.Name,
  4. IndexId=ISNULL(KC.[object_id],IDX.index_id),
  5. IndexName=IDX.Name,
  6. IndexType=ISNULL(KC.type_desc,'Index'),
  7. Index_Column_id=IDXC.index_column_id,
  8. ColumnID=C.Column_id,
  9. ColumnName=C.Name,
  10. Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending')
  11. WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END,
  12. PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'√'ELSE N'' END,
  13. [UQIQUE]=CASE WHEN IDX.is_unique=1 THEN N'√'ELSE N'' END,
  14. Ignore_dup_key=CASE WHEN IDX.ignore_dup_key=1 THEN N'√'ELSE N'' END,
  15. Disabled=CASE WHEN IDX.is_disabled=1 THEN N'√'ELSE N'' END,
  16. Fill_factor=IDX.fill_factor,
  17. Padded=CASE WHEN IDX.is_padded=1 THEN N'√'ELSE N'' END
  18. FROM sys.indexes IDX
  19. INNER JOIN sys.index_columns IDXC
  20. ON IDX.[object_id]=IDXC.[object_id]
  21. AND IDX.index_id=IDXC.index_id
  22. LEFT JOIN sys.key_constraints KC
  23. ON IDX.[object_id]=KC.[parent_object_id]
  24. AND IDX.index_id=KC.unique_index_id
  25. INNER JOIN sys.objects O
  26. ON O.[object_id]=IDX.[object_id]
  27. INNER JOIN sys.columns C
  28. ON O.[object_id]=C.[object_id]
  29. AND O.type='U'
  30. AND O.is_ms_shipped=0
  31. AND IDXC.Column_id=C.Column_id where O.name='cz201' --cz201是你要查询的表

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

您可能感兴趣的文章:

  • 详解SQL Server的简单查询语句
  • SqlServer查询和Kill进程死锁的语句
  • SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同
  • SQL Server 2016 查询存储性能优化小结
  • SqlServer使用 case when 解决多条件模糊查询问题
  • 使用SqlServer CTE递归查询处理树、图和层次结构
  • 在sqlserver中如何使用CTE解决复杂查询问题
  • 在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句写法
  • SQL Server查询前N条记录的常用方法小结
  • SQL Server数据库按百分比查询出表中的记录数
  • SQL Server简单查询示例汇总

人气教程排行