建索引后查询速度没有提高

clxy520 2012-09-26 09:52:08
我一张表 有50W的数据 表结构也很简单,我现在在时间字段上加上索引然后进行查询

select * from news 时间为8秒

select * from news order by news_time 时间也是8秒

把索引删除后搜索

select * from news order by news_time 还是8秒

到底是什么问题?
...全文
488 55 打赏 收藏 转发到动态 举报
写回复
用AI写文章
55 条回复
切换为时间正序
请发表友善的回复…
发表回复
DBA_磊仔 2012-09-27
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 的回复:]
这就证明走了索引了,写着【聚集索引查找】。另外我想请教一下怎么传图?我没弄过,按照你这个查询,好像已经是极限了。
[/Quote]建了聚集索引的表实际上已经不存在表了,只存在聚集索引,所以不论强不强制,都会走这个索引,是扫描还是查找,不是那个hint语句能决定的。我看他执行计划的箭头比较宽,应该还是数据选择性不够,所以速度还是会有点慢,但是也是极限了。
另外,每次测试都需要清空缓存。Lz前面的测试数据很奇怪,大概就是没有清空缓存的结果。有经验说从缓存读数的速度是通过IO读数速度的50倍,所以,这个聚集索引带给你的性能差异就很难察觉了,这时候要通过
set statistics IO on 来查看IO的开销
南冰 2012-09-27
  • 打赏
  • 举报
回复
select * 是全表扫描,用不到索引的
guostong 2012-09-27
  • 打赏
  • 举报
回复
没有 where 条件就不会使用索引
ttpsan550 2012-09-26
  • 打赏
  • 举报
回复
我在自己的一个70W行的表里 通过聚集索引 检索出 1W条记录 只要不到1S的时间(跟机器配置有关),搞不懂你这个是怎么回事,你把表的脚本全部 发出来看看呢。 还有 执行下 统计信息然后再查查看 UPDATE STATISTICS news
DBA_磊仔 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 4 楼 的回复:
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧


建立 索引不就是为了 查询海量数据的时候 提高查询速度吗?我有点不太理解了
[/Quote]错,索引在海量数据里查找少量数据是有用的,还有在Group by 、order by 时聚集索引是有用的,在海量数据里查找海量数据,索引是无力的
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 的回复:]
50w查出9690算是可以的拉,你看看执行计划是用了表扫描还是聚集索引查找?
[/Quote]

不太懂?怎么看
發糞塗牆 2012-09-26
  • 打赏
  • 举报
回复
50w查出9690算是可以的拉,你看看执行计划是用了表扫描还是聚集索引查找?
clxy520 2012-09-26
  • 打赏
  • 举报
回复
或者 能给我说说 怎么建个测试表,来测试 索引带来查询速度的提高
chesterfeng 2012-09-26
  • 打赏
  • 举报
回复
运行的时候选择现实执行计划,看看不就知道了吗,我X
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
select count(1) from news where news_time>'2011-09-26 09:41:58.120' 执行一下,看看有多少数据
[/Quote]
9690条
ttpsan550 2012-09-26
  • 打赏
  • 举报
回复
UPDATE STATISTICS news --更新下统计信息试试看呢
發糞塗牆 2012-09-26
  • 打赏
  • 举报
回复
select count(1) from news where news_time>'2011-09-26 09:41:58.120' 执行一下,看看有多少数据
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
引用 12 楼 的回复:

引用 11 楼 的回复:
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。



索引

竟然是图片?
[/Quote]

??????
ttpsan550 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 11 楼 的回复:
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。



索引
[/Quote]
竟然是图片?
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。
[/Quote]


索引
ttpsan550 2012-09-26
  • 打赏
  • 举报
回复
能不能贴个表和索引的创建, 才能具体分析,按你说的 应该不太可能。
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
引用 8 楼 的回复:
引用 4 楼 的回复:
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧


按你说的 我把查询条件修改以后 查询出几千条 所用时间还是一样 建不建索引没区别呀

你总数据量是多少 如果总数据量只有1W多条 然后查出的结果有几千条 这样的话 索引的消耗成本比普通查询的成……
[/Quote]

总数量 50多W 的数据啊
--小F-- 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 4 楼 的回复:
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧


按你说的 我把查询条件修改以后 查询出几千条 所用时间还是一样 建不建索引没区别呀
[/Quote]
你总数据量是多少 如果总数据量只有1W多条 然后查出的结果有几千条 这样的话 索引的消耗成本比普通查询的成本还高 索引就基本没什么用了
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
[/Quote]

按你说的 我把查询条件修改以后 查询出几千条 所用时间还是一样 建不建索引没区别呀
clxy520 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
建立索引 那要看你的选择度高不高啊,如果 大于 '2011-09-26 09:41:58.120'这个数据有几十万 那这个索引也就没作用了吧
[/Quote]

建立 索引不就是为了 查询海量数据的时候 提高查询速度吗?我有点不太理解了
加载更多回复(35)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧