sql server索引优化语句

第一步 建一个测试表

复制代码
--create table TestUsers
--(
--    Id int primary key identity(1,1),
--    Username varchar(30) not null,
--    Password varchar(10) not null,
--	  CreateDateTime  datetime not null
--)

第二步 插入100w数据 大概1分钟执行时间

复制代码
----插入数据
declare @id int, @username varchar(100), @password varchar(10)
set @id=0
set @username='user'
set @password='pwd_'
while @id<1000000
begin
insert into TestUsers(Username,Password,CreateDateTime)
values (@username+convert(varchar(100),@id),@password+convert(varchar(100),@id),GETDATE())  
set @id=@id + 1
end

第三步 开始针对测试建立相应索引 可以直接数据库在表 索引中创建

也可以使用 create index 语句去创建索引,这个就根据自己的测试来删除建立聚集 非聚集索引了

第四步 开始执行sql查看索引效果 需要一个查询执行时间来看

复制代码
declare @d datetime 
set @d=getdate()   
--你具体的select 语句
--select id,username from TestUsers where id>10
select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate()) 

第五步 查看现有的索引信息 利用系统存储过程查看 是什么类型的 哪些字段

exec dbo.sp_helpindex TestUsers

接下里 就是测试各种索引的花费情况
  1. 主键默认的 聚集索引 来查看100w数据
    select * from TestUsers 不带列名全局查询

    select id,username,password,createdatetime from TestUsers 带列名查询

    通过执行计划可以看到 这都是用的 主键的聚集索引

    可以试着写不同的语句 来查看 对应的执行情况 以及是不是使用了索引
相关推荐
WJX_KOI6 分钟前
PostgreSQL:将成为人工智能与大数据时代“赢家通吃”的数据库
数据库·postgresql
2401_897190556 分钟前
PHP与Suno音乐生成AI集成开发音频应用【操作】
jvm·数据库·python
阿里-于怀9 分钟前
Agent 构建变轻、Agent 架构变薄,什么正在变厚?
数据库·mysql·架构·agent·claude·manus·openclaw
两年半的个人练习生^_^11 分钟前
每日一学:设计模式之原型模式
java·开发语言·设计模式·原型模式
吕源林12 分钟前
mysql如何防止用户重命名数据库_限制ALTER与RENAME权限
jvm·数据库·python
elseif12312 分钟前
初学者必背【考点清单(大全)】【上篇】
开发语言·c++·笔记·学习·循环结构·分支结构·考纲
并不喜欢吃鱼13 分钟前
从零开始C++----二.(下篇)模版进阶与编译全过程的复习
开发语言·c++
2402_8548083715 分钟前
CSS代码复用性太低怎么办_通过BEM结构提升组件模块化
jvm·数据库·python
234710212715 分钟前
4.17 学习笔记
开发语言·软件测试·笔记·python·学习
m0_7489203616 分钟前
如何用 click 与 mousedown 区分鼠标点击与按下的触发顺序
jvm·数据库·python