社区
应用实例
帖子详情
为什么我建立了索引之后速度没有明显提升呢?
zq200487731
2013-05-04 11:26:56
表里面大概有3千多万的数据,在BUY_DATE_time上建立了聚集索引,但是我发现查询速度和没见索引的时候差不多,
大家看,两个的系统开销差不多
...全文
693
16
打赏
收藏
为什么我建立了索引之后速度没有明显提升呢?
表里面大概有3千多万的数据,在BUY_DATE_time上建立了聚集索引,但是我发现查询速度和没见索引的时候差不多, 大家看,两个的系统开销差不多
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Andy-W
2013-05-10
打赏
举报
回复
优化器提示的,缺少索引.....,根据提示再创建个索引看看性能如何。
最爱午夜
2013-05-10
打赏
举报
回复
1、你第一查询的时候是在有索引的情况下,但是第二次查询前,你没有清空缓存,也就是说,数据库有数据缓存在,这个时候,只要T-SQL语句花在cpu上面的时间不多的话,根本看不出两者的性能差别。 2、一次提取的数据太多,怎么比较,况且一个查询数据大于表的10%,扫描比查找性能更好,你这个是有问题的做法,起码试验的操作步骤就有问题。
lg314
2013-05-10
打赏
举报
回复
3000w数据中找出300w的数据建立索引也不会快很多。从index里面找出300w数据,然后要根据这个300w数据到聚集索引里面循环查找,3000w数据的B树查找成本大概是21,如果使用索引的话21*300w=6300w的成本。当然这个计算不是精确的,但也是差不多是这种思路。sql server里面估算出来使用索引比直接扫描慢的话就不会使用索引了。但如果建立的是聚集索引的话就不一样了,聚集索引就少了键值查找的成本。
skyclin
2013-05-09
打赏
举报
回复
一次提取三百万的数据,光是显示及传到客户端显示都花时间。
雪狐
2013-05-08
打赏
举报
回复
没建索引用的是 index seek, 建立索引后用的是 index scan,,理论上没建之前更快。。。 但你返回的结果集太多,300W行,,这个无论如何都不会太快。。。
魔者侠心之明星级程序员
2013-05-04
打赏
举报
回复
你给的好像是评估的计划,看不清楚具体原因,你最好有SET STATISTICS profile ON 来看一下结果 SET STATISTICS profile ON GO T-SQL 然后把结果集完整的贴出来分析。
daiyueqiang2045
2013-05-04
打赏
举报
回复
你后面的语句使用的seek方式这个理论是更快的
daiyueqiang2045
2013-05-04
打赏
举报
回复
你重建索引了吗? 显示指定的表或视图的数据和索引的碎片信息 查看一下你的索引碎片:http://www.cnblogs.com/worfdream/articles/2840582.html 更新统计 再看一下
zq200487731
2013-05-04
打赏
举报
回复
来人帮忙看下啊
专注or全面
2013-05-04
打赏
举报
回复
查询条件查询出来的将近300W了,占整个表的十分之一 走索引查找的话,也不见得一定能提高效率
专注or全面
2013-05-04
打赏
举报
回复
create index indexname on table(buy_date) include(user_id) 建立include 索引试试
zq200487731
2013-05-04
打赏
举报
回复
引用 6 楼 duanzhi1984 的回复:
你的字段的类型是什么,字符还是DATATIME
是datetime的
seusoftware
2013-05-04
打赏
举报
回复
并不是有索引就一定会快,要看索引有没有合理使用。 执行计划是聚集索引扫描,而不是查找,如果你要查的数据基本都集中在2013-01-01 and 2013-02-01,那么sql server可能就会选择去扫描了,所以就会慢。
SQL77
2013-05-04
打赏
举报
回复
3KW的数据.看你两个结果虽然行数不一样.但大致是300W数据.十分之一的数据 建立聚集索引肯定要快很多的.
duanzhi1984
2013-05-04
打赏
举报
回复
你的字段的类型是什么,字符还是DATATIME
魔者侠心之明星级程序员
2013-05-04
打赏
举报
回复
另外你执行获得评估计划的时候,并没有真正的去执行,你是怎么发现性能差不多的? 莫非你是根据评估计划的生成时间?
SQLSERVER之“sqlserver
索引
、视图、存储过程和触发器的使用”
本文通过创建大量数据的学生表并进行查询实验,展示了
没有
索引
时查询效率低下,通过
建立
聚集
索引
后显著
提升
了查询
速度
,证明了
索引
的重要性。
mysql 要不要建主键
索引
文章探讨了在
没有
索引
的情况下,数据库查询耗时6秒,通过手动
建立
唯一
索引
,查询
速度
显著
提升
至1秒,强调了
索引
在数据库性能优化中的关键作用。
【实验】MySQL多少数据需要
建立
索引
本文通过Python生成数据,测试不同规模数据下MySQL
索引
的性能
提升
效果。结果显示,在数据量达到几十万条后,
索引
能显著提高查询
速度
,尤其在千万级数据时,性能
提升
可达千倍。
MySQL
索引
为什么能提高查询
速度
本文介绍了MySQL
索引
的工作原理,特别是B+树的数据结构,如何通过
索引
加快数据查询
速度
。讲解了聚集
索引
与非聚集
索引
的区别,并提供了不同类型的
索引
选项。优化数据结构以减少IO操作,
提升
数据库性能。
命中
索引
一定能提高查询
速度
吗?
本文结合项目优化实例,探讨
索引
对查询性能的影响。
索引
虽能避免全表扫描,但命中
索引
不一定
提升
查询
速度
,如多表查询、
索引
选择性低、更新维护成本高、
索引
过多等情况。在简单查询、高选择性字段、选择适当
索引
类型时,
索引
能提高查询
速度
。
应用实例
27,579
社区成员
68,548
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章