SQL Server索引

SQL Server索引

索引

个人理解:就是用一个列或者多个列建立的,为了加快查询速度,但是可能会占用一些存储空间的结构,聚集索引只有一个,非聚集索引可以多个

索引 是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。 索引包含由表或视图中的一列或多列生成的键。 这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关联的行。

索引的目的是为了提高SQL Server系统的性能,提高查询数据效率,减少系统响应时间。

聚集索引和非聚集索引

具体表中的哪一列建立索引,可以定义 ,由DBMS管理维护,索引表也占据空间,建多了维护成本也高

非聚集索引:可以有多张,索引表是排序的,基本表不排序。逻辑上连续,数据存储上不连续。SQL Server 默认建立非聚集索引

  • 数据行物理上按索引键的顺序存储。
  • 一个表只能有一个聚集索引。
  • 通常用于查询返回表中大部分行的情况。

聚集索引:一张,索引表跟着基本表排序,物理上连续,SQL Server 主键默认有一个聚集索引

  • 数据行物理存储顺序与索引键的顺序无关。
  • 一个表可以有多个非聚集索引。
  • 非聚集索引包含一个指向数据行的指针,这增加了存储开销,但可能加速某些查询。

SQL Server如何新建索引,重新生成索引

在这里插入图片描述

什么时候建立索引

主键
外键
经常查询列
经常where的列
经常 order by,group by、distinct

缺点和问题:

对于增加、修改、删除操作,需要动态维护,增加时间
索引也占用磁盘空间,索引表太多,占用空间过大
索引的创建和维护也需要一定时间

使用使用SQL Server的性能监控工具 监控索引使用情况

使用SQL Server Profiler
SQL Server Profiler是SQL Server的一个图形化跟踪工具,它可以捕获服务器事件,并将这些事件保存为跟踪文件或实时显示。你可以使用它来监控索引的使用情况。
数据库中索引相关的表
sys.indexes:包含数据库中所有表的索引信息。
sys.dm_db_index_usage_stats:提供索引使用的统计信息,包括扫描、查找和查找键查找等操作的次数。
sys.dm_db_missing_index_details:显示查询优化器建议的缺失索引的详细信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值