SQL 索引
- 查看索引
exec sp_helpindex tablename
-
删除索引
drop index index_name on table_name
- 创建索引
1 --唯一 聚集索引 2 CREATE UNIQUE CLUSTERED INDEX indexName ON tableName(column_name[asc,desc]) 3 --不唯一 非聚集索引 4 CREATE NONCLUSTERED INDEX indexName ON tableName(column_name[asc,desc]) 5 --唯一 非聚集索 6 CREATE UNIQUE NONCLUSTERED indexName ON tableName(column_name[asc,desc])
临时表也可以直接创建CREATE NONCLUSTERED INDEX IDX_tme ON #temp(column_name1) INCLUDE (column2,column3)
注:
1、聚集索引每个表只能有一个;
2、如果索引有多列,第一个列才会用到索引查找,其余的是索引扫描;
3、INCLUDE是索引包含列,不会进行表排序
create index idx_A on A(biz_date) include(name,id) -
显示估计的执行计划
[Table Scan] 表扫描(最慢),对表记录逐行进行检查 [Clustered Index Scan] 聚集索引扫描(较慢),按聚集索引对记录逐行进行检查 [Index Scan] 索引扫描(普通),根据索引滤出部分数据在进行逐行检查 [Index Seek] 索引查找(较快),根据索引定位记录所在位置再取出记录 [Clustered Index Seek] 聚集索引查找(最快),直接根据聚集索引获取记录
- 命名规范
主键索引名为pk_字段名;唯一索引名为uk_字段名;普通索引名则为idx_字段名
- 查看效率
DBCC DROPCLEANBUFFERS --清除缓冲区 DBCC FREEPROCCACHE --删除计划高速缓存中的元素 --清缓存生产慎用 SET STATISTICS TIME ON --执行时间 SET STATISTICS IO ON--执行IO select * from test SET STATISTICS IO OFF
- 查看索引所占空间
exec sp_spaceused 'index'
- 创建索引视图
create view v_customer_sch_index with schemabinding as select Col1,Col2 from dbo.test go create unique clustered index cust_uniquetb on v_customer_sch_index(Col1) 注:索引视图创建的第一个索引必须是唯一聚集索引 强制走视图索引 select * from test with(noexpand)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了